1508. Range Sum of Sorted Subarray Sums
JAVA
class Solution { public int rangeSum(int[] nums, int n, int left, int right) { int[] arr = new int[n * (n + 1) / 2]; for (int i = 0, k = 0; i < n; ++i) { int s = 0; for (int j = i; j < n; ++j) { s += nums[j]; arr[k++] = s; } } Arrays.sort(arr); int ans = 0; final int mod = (int) 1e9 + 7; for (int i = left - 1; i < right; ++i) { ans = (ans + arr[i]) % mod; } return ans; } }
C++
class Solution { public: int rangeSum(vector<int>& nums, int n, int left, int right) { int arr[n * (n + 1) / 2]; for (int i = 0, k = 0; i < n; ++i) { int s = 0; for (int j = i; j < n; ++j) { s += nums[j]; arr[k++] = s; } } sort(arr, arr + n * (n + 1) / 2); int ans = 0; const int mod = 1e9 + 7; for (int i = left - 1; i < right; ++i) { ans = (ans + arr[i]) % mod; } return ans; } };
Comments
Post a Comment