1. 程式人生 > >劍指offer編程題-1

劍指offer編程題-1

length 表行數 subject ++ 查找 bject clas return pub

1.二維數組中的查找

題目描述

在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 思路: 利用二維數組由上到下,由左到右遞增的規律, 那麽選取右上角a[row][col]與target進行比較,如果等於就直接找到, 當target小於元素a[row][col]時,那麽target必定在元素a所在行的左邊, 即col--; 當target大於元素a[row][col]時,那麽target必定在元素a所在列的下邊, 即row++;
    public class Solution {
  
public boolean Find(int target, int [][] array) { int row=0; int col=array[0].length-1; while(row<=array.length-1&&col>=0){ if(target==array[row][col]) return true; else if(target>array[row][col]) row++;
else col--; } return false; } }

註意:

對於一個二維數組:

int[][] arr = {  
        {2,3,4},  
        {4,5,6},  
        {7,8,9}  
    };  

int rows = i.length;//行數
int columns = i[0].length;//列數

[[]]這樣一個數組代表行數是1,列數時0.

劍指offer編程題-1