Untitled
unknown
plain_text
3 months ago
987 B
5
Indexable
class Solution { public int maximumTripletValue(int[] nums) { int n = nums.length; if (n < 3) return 0; // Edge case (though constraints guarantee n ≥ 3) // Step 1: Compute suffixMax array (maximum nums[k] for k > j) int[] suffixMax = new int[n]; suffixMax[n - 1] = nums[n - 1]; for (int k = n - 2; k >= 0; k--) { suffixMax[k] = Math.max(suffixMax[k + 1], nums[k]); } // Step 2: Iterate over j, maintaining maxLeft dynamically int maxLeft = nums[0]; // max(nums[i]) for i < j int maxVal = 0; for (int j = 1; j < n - 1; j++) { // Compute the potential max value with the current j int value = (maxLeft - nums[j]) * suffixMax[j + 1]; maxVal = Math.max(maxVal, value); // Update maxLeft for the next iteration maxLeft = Math.max(maxLeft, nums[j]); } return maxVal; } }
Editor is loading...
Leave a Comment