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. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. int [] nums = {5, -100, 5, 1};
  14. int k = 4;
  15. int n = nums.length;
  16. int[] preSum = new int[n + 1];
  17.  
  18. for(int i = 1; i <= n; i++){
  19. preSum[i] = nums[i - 1] + preSum[i-1];
  20. }
  21.  
  22. HashMap<Integer, Integer> map = new HashMap<>();
  23.  
  24. int ans = 0;
  25.  
  26. for(int j = 0; j < n; j++){
  27. int num1 = nums[j] - k;
  28. int num2 = nums[j] + k;
  29.  
  30. int sum1 = 0;
  31. int sum2 = 0;
  32.  
  33.  
  34. if(map.containsKey(num1)){
  35. sum1 = preSum[j + 1] - preSum[map.get(num1)];
  36. }
  37.  
  38. if(map.containsKey(num2)){
  39. sum2 = preSum[j + 1] - preSum[map.get(num2)];
  40. }
  41.  
  42. ans = Math.max(ans, Math.max(sum1, sum2));
  43.  
  44. int number = nums[j];
  45. int idx = j;
  46.  
  47. if(map.containsKey(number)){
  48. if(preSum[j + 1] < preSum[map.get(number) + 1]){
  49. map.put(number, j);
  50. }
  51. }else{
  52. map.put(number, j);
  53. }
  54. }
  55. System.out.println(ans);
  56. }
  57. }
Success #stdin #stdout 0.07s 52536KB
stdin
Standard input is empty
stdout
6