我有一个2 ^ n大小的int数组,我想检查一个元素是否存在大于0.如果元素存在,我想将数组除以4并检查找到的元素的坐标是否是在阵列的第1,第2,第3或第4象限。
例如,从逻辑上讲,如果元素存在于第一象限中,它将看起来像这样:
如果array [] []> 0&&该坐标的行在0-(grid.length / 2-1)&&的范围内。该坐标的列在0-(grid.length / 2-1)范围内,然后做一些事情。
我真的不确定如何检查找到的元素的行和列索引,并存储要在if语句中使用的坐标。救命啊!
答案 0 :(得分:1)
你的代码应该是这样的
for(int i = 0; i < array.length; i++){
for(int j; j < array[i].length; j++){
if(array[i][j] > 0){
do some thing
}
}
}
答案 1 :(得分:0)
你正在使用嵌套的for
循环,对吗?并且,我猜,你有一个像返回找到的元素的函数?所以你需要一个函数来返回找到的元素和它的坐标 - 或者只是坐标,如果数组在这个函数之外可用的话。
像这样(伪代码):
for i from 0 to max X
for j from 0 to max Y
if array[i][j] > 0
return (array[i][j], i, j) # A tuple, or whatever -
# just some data structure for
# storing multiple things
答案 2 :(得分:0)
据我理解你的问题,你有以下几种情况:给定0之间的整数k,N(表示单个dim。数组中元素的位置)找到2-d数组中相应单元格的坐标,即找到x(i,j),其中x有R行和C列。
Example (rows R=3 and Columns C=4)
0 1 2 3
4 5 6 7
8 9 10 11
Given k=6 Then i=1, j=2
Given k=11 Then i=2, j=3
Given k, you can find i, j as follows:
i=Int(k/c) //Row number (0-based)
j=k%c // Column number - (0-based) obtained by the remainder of dividing k by c