@@ -0,0 +1,1554 @@
+public class Solution %7B%0A    public boolean searchMatrix(int%5B%5D%5B%5D matrix, int target) %7B%0A        int m, n;%0A        if((m = matrix.length) == 0 %7C%7C (n = matrix%5B0%5D.length) == 0)%7B%0A            return false;%0A        %7D%0A        int up = 0, bottom = m, left = 0, right = n, i;%0A        while(up %3C bottom && left %3C right)%7B%0A            for(i = up; i %3C bottom; i++)%7B%0A                if(matrix%5Bi%5D%5Bright-1%5D == target)%7B%0A                    return true;%0A                %7Delse if(matrix%5Bi%5D%5Bright-1%5D %3E target)%7B%0A                    break;%0A                %7D%0A            %7D%0A            up = i;%0A            if(up %3E= bottom %7C%7C left %3E= right) break;%0A            for(i = bottom - 1; i %3E= up; i--)%7B%0A                if(matrix%5Bi%5D%5Bleft%5D == target)%7B%0A                    return true;%0A                %7Delse if(matrix%5Bi%5D%5Bleft%5D %3C target)%7B%0A                    break;%0A                %7D%0A            %7D%0A            bottom = i+1;%0A            if(up %3E= bottom %7C%7C left %3E= right) break;%0A            for(i = left; i %3C right; i++)%7B%0A                if(matrix%5Bbottom-1%5D%5Bi%5D == target)%7B%0A                    return true;%0A                %7Delse if(matrix%5Bbottom-1%5D%5Bi%5D %3E target)%7B%0A                    break;%0A                %7D%0A            %7D%0A            left = i;%0A            if(up %3E= bottom %7C%7C left %3E= right) break;%0A            for(i = right - 1; i %3E= left; i--)%7B%0A                if(matrix%5Bup%5D%5Bi%5D == target)%7B%0A                    return true;%0A                %7Delse if(matrix%5Bup%5D%5Bi%5D %3C target)%7B%0A                    break;%0A                %7D%0A            %7D%0A            right = i+1;%0A        %7D%0A        return false;%0A    %7D%0A%7D

Q240 Search a 2D Matrix II