You are given an integer array heights of size n, where heights[i] represents the height of the ith block in an exercise routine.
You start on the ground (height 0) and must jump onto each block exactly once in any order.
a to a block of height b is (a - b)2.heights[i] is (0 - heights[i])2.Return the maximum total calories you can burn by selecting an optimal jumping sequence.
Note: Once you jump onto the first block, you cannot return to the ground.
Example 1:
Input: heights = [1,7,9]
Output: 181
Explanation:
The optimal sequence is [9, 1, 7].
heights[2] = 9: (0 - 9)2 = 81.heights[0] = 1: (9 - 1)2 = 64.heights[1] = 7: (1 - 7)2 = 36.Total calories burned = 81 + 64 + 36 = 181.
Example 2:
Input: heights = [5,2,4]
Output: 38
Explanation:
The optimal sequence is [5, 2, 4].
heights[0] = 5: (0 - 5)2 = 25.heights[1] = 2: (5 - 2)2 = 9.heights[2] = 4: (2 - 4)2 = 4.Total calories burned = 25 + 9 + 4 = 38.
Example 3:
Input: heights = [3,3]
Output: 9
Explanation:
The optimal sequence is [3, 3].
heights[0] = 3: (0 - 3)2 = 9.heights[1] = 3: (3 - 3)2 = 0.Total calories burned = 9 + 0 = 9.
Constraints:
1 <= n == heights.length <= 1051 <= heights[i] <= 105According to the problem statement, the order of jumps affects the total calories burned. To maximize calorie consumption, we can use a greedy strategy by prioritizing jumps with the largest height differences.
Therefore, we can first sort the block heights, then start jumping from the highest block, then to the lowest block, and so on, until all blocks have been jumped on.
The specific steps are as follows:
heights.pre = 0 to represent the height of the previous block, and ans = 0 to represent the total calories burned.l points to the beginning of the array, and the right pointer r points to the end of the array.l < r, do the following:ans.ans.pre to the height of the block pointed to by the left pointer.ans.The time complexity is O(n log n) and the space complexity is O(log n), where n is the length of the array.
Java
C++
Go
TypeScript
Practice Maximum Calories Burnt from Jumps with our built-in code editor and test cases.
Practice on FleetCode