(数组) leetcode 1144
Posted 爱学英语的程序媛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(数组) leetcode 1144相关的知识,希望对你有一定的参考价值。
class Solution { public: int movesToMakeZigzag(vector<int>& nums) { //判断每个位置 i 对于它的前后 i-1 和 i+1 需要减少多少 //按照奇偶分类保存 int ans[2]={0}; for(int i=0; i<nums.size(); i++){ int d1=0, d2=0; if(i>0 && nums[i] >= nums[i-1]){ //对于位置i的前面i-1所需减少的最小操作数 d1 = nums[i] - nums[i-1] +1; } if(i<nums.size()-1 && nums[i] >= nums[i+1]){ //对于位置i的后面i+1所需减少的最小操作数 d2 = nums[i] - nums[i+1] +1; } //ans[0]保存偶数位, ans[1]保存奇数位 //对于位置i,只需要减去前后操作数的较大值,不能重复减 ans[i%2] += max(d1, d2); } return min(ans[0], ans[1]); } };
以上是关于(数组) leetcode 1144的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 1144. Decrease Elements To Make Array Zigzag 递减元素使数组呈锯齿状