【问题标题】:Algorithm for column, row from index?列的算法,索引中的行?
【发布时间】:2012-11-23 04:50:07
【问题描述】:

假设我有一个从左到右、从上到下的索引 12(第 12 个元素)。

我有一个数组[4][4]。

在给定一维索引 12 的情况下,计算索引 [3][2] 的最快方法是什么? (一维索引从 1 开始)。

谢谢

【问题讨论】:

  • index[3][2] 不等同于 index[12][3][2] 覆盖 15 个单元格。

标签: java c++ algorithm


【解决方案1】:

不知道这是否最快,但绝对简单:

假设数组[x][y]

ix = floor(index / y)
iy = index % y

例子:

01
23
45

x = 3
y = 2

index = 3
ix = floor(3 / 2) = 1
iy = 3 % 2 = 1    

index = 5
ix = floor(5 / 2) = 2
iy = 5 % 2 = 1

【讨论】:

  • 我认为你已经做了相反的事情。剩下的应该进入iy
  • 是的,虽然总体思路是这样的,但我有一些问题,修复了它,谢谢
  • 我需要等待 5 分钟,抱歉。
【解决方案2】:

给定 a[x][y] 是数组

使用这个公式

[index of 1d array]= (rnum * colsize) + (colnum + 1)

所以对于带有colsize=4的[3][2]

= (3 * 4) + (2 + 1)
= 15

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 2014-03-02
    • 2020-04-13
    • 2019-04-30
    • 2014-03-06
    • 1970-01-01
    • 2019-03-09
    • 2012-08-22
    • 2012-10-14
    相关资源
    最近更新 更多