本文主要是介绍Leetcode 2919. Minimum Increment Operations to Make Array Beautiful,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- Leetcode 2919. Minimum Increment Operations to Make Array Beautiful
- 1. 解题思路
- 2. 代码实现
- 题目链接:2919. Minimum Increment Operations to Make Array Beautiful
1. 解题思路
这一题就是一个动态规划的题目。
思路上来说,就是考察每一个没到目标值 k k k的数是否要进行变化,分别考察变化前后对应的后续所需变化数,然后给出最小值即可。
2. 代码实现
给出python代码实现如下:
class Solution:def minIncrementOperations(self, nums: List[int], k: int) -> int:n = len(nums)@lru_cache(None)def dp(idx, last_idx):if idx >= n:return 0if nums[idx] >= k:return dp(idx+1, idx)if idx - last_idx == 3:return k-nums[idx] + dp(idx+1, idx)else:return min(k-nums[idx] + dp(idx+1, idx), dp(idx+1, last_idx))return dp(0, -1)
提交代码评测得到:耗时1460ms,占用内存406.8MB。
这篇关于Leetcode 2919. Minimum Increment Operations to Make Array Beautiful的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!