【发布时间】:2026-02-16 14:05:02
【问题描述】:
我正在构建一个类似于热图的矩形阵列界面,我希望“热”位置位于阵列的左上角,而“冷”位置位于右下角。因此,我需要一个像这样对角填充的数组:
0 1 2 3
|----|----|----|----|
0 | 0 | 2 | 5 | 8 |
|----|----|----|----|
1 | 1 | 4 | 7 | 10 |
|----|----|----|----|
2 | 3 | 6 | 9 | 11 |
|----|----|----|----|
所以实际上,我需要一个函数 f(x,y) 使得
f(0,0) = 0
f(2,1) = 7
f(1,2) = 6
f(3,2) = 11
(或者,当然,一个类似的函数 f(n),其中 f(7) = 10,f(9) = 6,等等)。
【问题讨论】:
-
只要遍历数组,用当前步填充当前位置,不是吗?
-
不,一个限制是数组从左到右逐行遍历。所以这就是为什么我正在寻找一个函数来计算每个值,而不是以特定方式遍历数组。
-
那么你想直接计算f(x,y),而不是填充一个数组?因为我认为没有理由需要从左到右填充数组。因为如果您确实像 Ozan 建议的那样填充了一个数组,那么您可以直接在数组中查询
array[x][y]以直接找到 f(x,y)...