class Solution { public: bool Find(int target, vector<vector<int> > array) { int m = array.size(); int n = array[0].size(); if(m == 0 || n == 0) return false; int i = 0 , j = 0 , now = array[0][0]; while(1){ if(now == target) return true; if(j<n-1){ if(now < target && array[i][j+1] <= target){ now = array[i][j+1]; j = j+1; continue; } if(j > 0 && array[i][j-1] >= target){ now = array[i][j-1]; j = j - 1; continue; } if(i < m-1){ now = array[i+1][j]; i = i + 1; continue; } } if(i<m-1){ now = array[i+1][j]; i = i + 1; if(array[i][j-1] >= target){ now = array[i][j-1]; j = j - 1; continue; } continue; } break; } return false; } };