classSolution{publicbooleancheckValidCuts(int n,int[][] rectangles){int[][] x =newint[rectangles.length][2];int[][] y =newint[rectangles.length][2];// Build x and y coordinates array, so that we can check horizontally and verticallyfor(int i =0; i < rectangles.length;++i){
x[i][0]= rectangles[i][0];
x[i][1]= rectangles[i][2];
y[i][0]= rectangles[i][1];
y[i][1]= rectangles[i][3];}Arrays.sort(x,(a, b)-> a[0]- b[0]);Arrays.sort(y,(a, b)-> a[0]- b[0]);returnMath.max(checkNonOverlapping(x),checkNonOverlapping(y))>=3;}privateintcheckNonOverlapping(int[][] intervals){int count =0;int prevEnd =-1;// Start checking overlappingfor(int i =0; i < intervals.length;++i){int start = intervals[i][0];int end = intervals[i][1];// When non-overlappingif(prevEnd <= start){++count;}
prevEnd =Math.max(prevEnd, end);}return count;}}