fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4.  
  5. // Function to create the prefix sum array
  6. static int[] prefixSum(int[] nums) {
  7. int n = nums.length;
  8. int[] prefix = new int[n + 1];
  9.  
  10. // Build the prefix array
  11. for (int i = 1; i <= n; i++) {
  12. prefix[i] = prefix[i - 1] + nums[i - 1];
  13. }
  14.  
  15. return prefix;
  16. }
  17.  
  18. // Function to find the sum from index l to r
  19. static int optimizedSum(int[] prefix, int l, int r) {
  20. return prefix[r + 1] - prefix[l];
  21. }
  22.  
  23. public static void main(String[] args) {
  24.  
  25. // Original array
  26. int[] nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  27.  
  28. // Create the prefix sum array
  29. int[] prefix = prefixSum(nums);
  30.  
  31. // Range to find the sum
  32. int l = 3;
  33. int r = 7;
  34.  
  35. // Print the sum
  36. System.out.println("Sum from index " + l + " to " + r + " = " + optimizedSum(prefix, l, r));
  37. }
  38. }
Success #stdin #stdout 0.17s 57896KB
stdin
Standard input is empty
stdout
Sum from index 3 to 7 = 25