classSolution{publicintfindMinArrowShots(int[][] points){int row =1;Arrays.sort(points,(o1,o2)->Integer.compare(o1[0],o2[0]));int right = points[0][1];for(int i=1;i<points.length;i++){if(right>=points[i][0]){
right =Math.min(right,points[i][1]);}else{
right = points[i][1];
row++;}}return row;}}
classSolution{publicList<Integer>partitionLabels(String s){int[] hash =newint[27];for(int i=0;i<s.length();i++){
hash[s.charAt(i)-'a']= i;}int left =0;int right =0;List<Integer> res =newArrayList<>();for(int i=0;i<s.length();i++){
right =Math.max(right,hash[s.charAt(i)-'a']);if(i==right){
res.add(right-left+1);
left = i+1;}}return res;}}
classSolution{publicint[][]merge(int[][] intervals){LinkedList<int[]> res =newLinkedList<>();Arrays.sort(intervals,(o1,o2)->{return o1[0]-o2[0];});int left = intervals[0][0];int right = intervals[0][1];for(int i=1;i<intervals.length;i++){if(right>=intervals[i][0]){
right =Math.max(intervals[i][1],right);}else{
res.add(newint[]{left,right});
left = intervals[i][0];
right = intervals[i][1];}}
res.add(newint[]{left,right});return res.toArray(newint[res.size()][]);}}