在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。
請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
我得思路是從左上角開始,即arr[0][0],將這個整數和它相比,如果比它大,那麼將這個整數和arr[1][1]比
如果還大那麼繼續,如果小於arr[n][n],那麼去arr[n][n]這個元素的左面和上面找,如果有說明在這個陣列中
沒有說明不在
這個想法首先只適用於方陣,並且查詢效率並不是最好
答案的解法是從左下角開始
如果整數比這個元素大說明整數在這個元素的右邊,
如果整數比這個元素**明整數在這個元素的左邊。
更新元素,重複上述步驟
如果這個元素已經到邊界並且出界了還沒找到,那麼就是沒有
int search(int* arr,int x,int y,intnum)
else
if(arr[a*y+b] else
return1;
}return -1;}
intmain()
;
int index = 0
; index = search((int*)arr,5,5,89
); printf("%d
",index);
return0;
}
子陣列之和的最大值(二維)
二維情況下,定義 部分和 ps i j 等於以 1,1 i,1 1,j i,j 為頂點的矩形區域的元素之和。則以 i min,j min i min,j max i max,j min i max,j max 為頂點的矩形區域的元素之和,等於ps i max j max ps i min 1 j m...
求子陣列之和的最大值(二維)
求子陣列之和的最大值 二維 public class subbinaarraysum if start max start 0 return max low和high為將二維陣列劈開的兩列,取值範圍為0 m,line為二維陣列的哪一行 函式返回兩列之間的一維陣列的和 public static in...
子陣列之和的最大值 二維
程式設計之美 第2.15節 子陣列之和的最大值 二維 題目 求二維陣列中子陣列的最大和 解法 從上到下遍歷,對於第i行,遍歷從第i行往下的所有行,使其加和成為一維陣列,然後用一維陣列求最大值來做。include includeusing namespace std int sub2darrysum ...