題目:在一個(gè)二維數(shù)組中磁餐,每一行都按照從左到右遞增的順序排序肠牲,每一列都按照從上到下遞增的順序排序幼衰。請完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù)埂材,判斷數(shù)組中是否含有該整數(shù)塑顺。
判斷該二維數(shù)組中是否有元素7。
思路:比如有二維數(shù)組a[3][3]為1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15
選取左下角的元素a[3][0]是6比7小俏险,則排除第一列严拒,令a[3][0]列加1得
(1) 2 8 9
(2) 4 9 12
(4) 7 10 13
(6) [8] 11 15
a[3][1]為8大于7,則減去一行竖独,a[2][1]為7則返回true裤唠。
代碼:
/**
* Created by ryder on 2017/6/12.
* 二維數(shù)組,從左到右遞增莹痢,從上到下遞增种蘸,輸入一個(gè)整數(shù)墓赴,判斷數(shù)組中是否含有
*/
public class P44_FindInPartiallySortedMatrix {
public static boolean findInPartiallySortedMatrix(int[][] data,int target){
if(data==null ||data.length==0 || data[0].length==0)
return false;
int rowMax = data.length-1,colMax = data[0].length-1;
int rowCur = data.length-1,colCur = 0;
while(true){
if(rowCur<0 | rowCur>rowMax | colCur<0 | colCur>colMax)
return false;
if(data[rowCur][colCur]==target)
return true;
else if(data[rowCur][colCur]>target)
rowCur--;
else
colCur++;
}
}