fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. static int[][] merge(int[][] intervals) {
  11. if(intervals.length == 0) return intervals;
  12. Arrays.sort(intervals, new Comparator<int[]>(){
  13. @Override
  14. public int compare(int n1[], int[] n2){
  15. return n1[0] == n2[0] ? n1[1] - n2[1] : n1[0] - n2[0];
  16. }
  17. });
  18. List<int[]> ans = new ArrayList<>();
  19. int[] member = intervals[0];
  20. for(int[] in : intervals){
  21. if(in[0] <= member[1]){
  22. if(in[1] > member[1]){
  23. member[1] = in[1];
  24. }
  25. }else{
  26. ans.add(member);
  27. member = in;
  28. }
  29. }
  30. ans.add(member);
  31. return ans.toArray(new int[ans.size()][2]);
  32. }
  33.  
  34. public static void main (String[] args) throws java.lang.Exception
  35. {
  36. // your code goes here
  37. int[][] intervals = new int [4][2];
  38. intervals[0][0] = 2;
  39. intervals[0][1] = 4;
  40.  
  41. intervals[1][0] = 7;
  42. intervals[1][1] = 9;
  43.  
  44. intervals[2][0] = 5;
  45. intervals[2][1] = 8;
  46.  
  47. intervals[3][0] = 1;
  48. intervals[3][1] = 3;
  49.  
  50. int[][] merged = merge(intervals);
  51. for(int i = 0; i < merged.length; i++){
  52. System.out.println(merged[i][0] + " - " + merged[i][1]);
  53. }
  54.  
  55.  
  56. }
  57. }
Success #stdin #stdout 0.1s 36148KB
stdin
Standard input is empty
stdout
1 - 4
5 - 9