Maximum Sum Obtained of Any Permutation LeetCode solution in Java
1class Solution {2public int maxSumRangeQuery(int[] nums, int[][] requests) {3int n = nums.length;4int[] pref = new int[n];5for (int i = 0; i < requests.length; i++) {6pref[requests[i][0]]++;7if (requests[i][1] + 1 < n) pref[requests[i][1] + 1]--;8}9for (int i = 1; i < n; i++) {10pref[i] += pref[i - 1];11}12Arrays.sort(nums);13Arrays.sort(pref);14long res = 0;15for (int i = 0; i < n; i++) {16res += ((long) pref[i] * nums[i]);17res %= 1000000007;18}19return (int) res % 1000000007;20}21}