LeetCode·每日一题·1144.递减元素使数组呈锯齿状·模拟
2023-09-27 14:26:29 时间
作者:小迅
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
![](https://img-blog.csdnimg.cn/img_convert/019bc61d99d3843aecf95d021c95f2da.png)
思路
题意 -> 给定一个数组,操作数组元素使得满足题目要求,返回操作步数
由于题目要求是奇偶变换,所有直接按照题目要求进行模拟,枚举两次数组,一次变换奇位置,一次变换偶位置,最后返回两次变换中操作数小的即可
代码注释超级详细
代码
int movesToMakeZigzag(int* nums, int numsSize){
int s[2] = {0};//记录奇偶变换操作数
int n = numsSize;
for (int i = 0; i < n; ++i) {//枚举位置
int left = i ? nums[i - 1] : INT_MAX;//记录当前位置的左右元素
int right = i < n - 1 ? nums[i + 1] : INT_MAX;
s[i % 2] += fmax(nums[i] - fmin(left, right) + 1, 0);//取当变换的最小操作数
}
return fmin(s[0], s[1]);
}
作者:小迅
链接:https://leetcode.cn/problems/decrease-elements-to-make-array-zigzag/solutions/2135792/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-jg0a/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章
- Leetcode: Sort List
- 168、【动态规划】leetcode ——121. 买卖股票的最佳时机:dp数组+变量优化 (C++版本)
- LeetCode——Convert Sorted Array to Binary Search Tree
- 【Leetcode】1:两数之和(Python)
- [LeetCode] 1232. Check If It Is a Straight Line 缀点成线
- [LeetCode] Number Of Corner Rectangles 边角矩形的数量
- [LeetCode] Squirrel Simulation 松鼠模拟
- [LeetCode] 189. Rotate Array 旋转数组
- Leetcode——11. Container With Most Water
- leetcode算法125.验证回文串