[英]Searching a 2D array for a range of values in java
我有一個2 ^ n大小的int數組,我想檢查是否存在一個大於0的元素。如果該元素存在,我想將該數組除以4,並檢查找到的元素的坐標是否在第1個,數組的第二,第三或第四象限。
例如,從邏輯上講,如果元素在第一象限中,它將看起來像這樣:
如果array [] []> 0 &&,則該坐標的行在0-(grid.length / 2-1)范圍內&&列的坐標在0-(grid.length / 2-1)范圍內然后做點什么。
我真的不確定如何檢查找到的元素的行和列的索引,以及將那些坐標存儲在我的if語句中。 救命!
您的代碼應如下所示
for(int i = 0; i < array.length; i++){
for(int j; j < array[i].length; j++){
if(array[i][j] > 0){
do some thing
}
}
}
您正在使用嵌套的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
據我了解您的問題,您遇到以下情況:給定一個介於0和N之間的整數k,N(代表一個尺寸數組中元素的位置)在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.