leetcode 240: 搜尋二維矩陣 II
阿新 • • 發佈:2018-12-14
沒有想到好的方法
bool searchMatrix(std::vector<std::vector<int>>& matrix, int target) { int h=matrix.size(); if(h==0) return false; int w=matrix[0].size(); if(w==0) return false; int i=0; int j=0; if(target<matrix[0][0]) return false; else if(target==matrix[0][0]) return true; while(i<h-1&&j<w-1){ if(target>matrix[i+1][j+1]) { i++; j++; } else if(target==matrix[i+1][j+1]) return true; else if(target<matrix[i+1][j+1]) { for(int k1=0;k1<i+1;k1++){ if(target==matrix[k1][j+1]) return true; } for(int k1=0;k1<j+1;k1++){ if(target==matrix[i+1][k1]) return true; } break; } } if(h>2) i=i+2; if(w>2) j=j+2; if(i<h){ for(;i<h;i++){ for(int k1=0;k1<w;k1++){ if(matrix[i][k1]==target) return true; } } } if (j < w) { for (; j < w; j++) { for (int k1 = 0; k1 < h; k1++) { if (matrix[k1][j] == target) return true; } } } return false; }