fork(7) 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. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. int[] a = {1,2,3,4,5,6,7,8,9,0};
  13. maximumsubarrayConsecutive(a);
  14. }
  15. public static void maximumsubarrayConsecutive(int[] a){
  16. int k = 0;
  17. int maxvalue = 0;
  18. int minvalue = 0;
  19. int maxend=-1;
  20. int maxstart=-1;
  21. int length = -1;
  22. HashMap<Integer, Integer> map = new HashMap<>();
  23. for (int i = 0; i < a.length; i++) {
  24. if(a[i] > a[maxvalue])
  25. maxvalue=i;
  26. if(a[i] < a[minvalue])
  27. minvalue=i;
  28. if(map.containsKey(a[i])){
  29. if(map.get(a[i]) < k ){
  30. map.put(a[i],i);
  31. continue;
  32. }
  33. if((a[maxvalue]-a[minvalue]) == (i-1-k)){
  34. if(length < (i-k)){
  35. length = i-k;
  36. maxstart = k;
  37. maxend = i-1;
  38. }
  39. }
  40. k = map.get(a[i]) +1;
  41. if(maxvalue < k)
  42. maxvalue = k;
  43. if(minvalue < k)
  44. minvalue = k;
  45. }
  46. map.put(a[i],i);
  47. }
  48.  
  49.  
  50. if((a[maxvalue] - a[minvalue]) == (a.length-1)){
  51. System.out.println(a.length);
  52. System.out.println(Arrays.toString(a));
  53. }else{
  54. System.out.println(length);
  55. System.out.print("{");
  56. for (int i = maxstart; i <= maxend; i++) {
  57. if(i==maxend)
  58. System.out.print(a[i]);
  59. else
  60. System.out.print(a[i]+",");
  61. }
  62. System.out.print("}");
  63. System.out.println();
  64. }
  65. }
  66. }
Success #stdin #stdout 0.09s 27840KB
stdin
Standard input is empty
stdout
10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]