每一个线段都有start和end两个数据项,表示这条线段在X轴上从start位置开始到end位置结束。给定一批线段,求所有重合区域中最多重合了几个线段。
区块链毕设网qklbishe.com为您提供问题的解答
每一个线段都有start和end两个数据项,表示这条线段在X轴上从start位置开始到end位置结束。给定一批线段,求所有重合区域中最多重合了几个线段。
import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int time = sc.nextInt(); int[][] times = new int[time][2]; for(int i=0;i<time;i++){ times[i][0] = sc.nextInt(); times[i][1] = sc.nextInt(); } Arrays.sort(times, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o1[0]-o2[0]; } }); PriorityQueue<int[]> queue = new PriorityQueue<>(new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o1[1]-o2[1]; } }); int maxSize = 1; queue.add(times[0]); for(int i=1;i<times.length;i++){ while(!queue.isEmpty()){ int[] peek = queue.peek(); if(peek[1]<times[i][0]){ queue.poll(); }else{ break; } } queue.add(times[i]); maxSize = Math.max(maxSize,queue.size()); } System.out.println(maxSize); } }
52:34
以上就是关于问题每一个线段都有start和end两个数据项,表示这条线段在X轴上从start位置开始到end位置结束。给定一批线段,求所有重合区域中最多重合了几个线段。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训