當(dāng)前位置:
首頁(yè) >
LeetCode 1144. 递减元素使数组呈锯齿状(奇偶分别遍历)
發(fā)布時(shí)間:2024/7/5
26
豆豆
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1144. 递减元素使数组呈锯齿状(奇偶分别遍历)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
給你一個(gè)整數(shù)數(shù)組 nums,每次 操作 會(huì)從中選擇一個(gè)元素并 將該元素的值減少 1。
如果符合下列情況之一,則數(shù)組 A 就是 鋸齒數(shù)組:
- 每個(gè)偶數(shù)索引對(duì)應(yīng)的元素都大于相鄰的元素,即 A[0] > A[1] < A[2] > A[3] < A[4] > …
- 或者,每個(gè)奇數(shù)索引對(duì)應(yīng)的元素都大于相鄰的元素,即 A[0] < A[1] > A[2] < A[3] > A[4] < …
返回將數(shù)組 nums 轉(zhuǎn)換為鋸齒數(shù)組所需的最小操作次數(shù)。
示例 1: 輸入:nums = [1,2,3] 輸出:2 解釋:我們可以把 2 遞減到 0,或把 3 遞減到 1。示例 2: 輸入:nums = [9,6,1,6,2] 輸出:4提示: 1 <= nums.length <= 1000 1 <= nums[i] <= 1000來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/decrease-elements-to-make-array-zigzag
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
- 奇數(shù)位都小于兩側(cè),或者偶數(shù)位都小于兩側(cè),兩種情況取最小的操作次數(shù)
0 ms 7.2 MB
class Solution: # py3def movesToMakeZigzag(self, nums: List[int]) -> int:op1, op2 = 0, 0n = len(nums)for i in range(n):cur = nums[i]if i&1:if cur >= nums[i-1]:op1 += cur-nums[i-1]+1cur = nums[i-1]-1if i+1 < n and cur >= nums[i+1]:op1 += cur-nums[i+1]+1else:if i>0 and cur >= nums[i-1]:op2 += cur-nums[i-1]+1cur = nums[i-1]-1if i+1 < n and cur >= nums[i+1]:op2 += cur-nums[i+1]+1return min(op1, op2)72 ms 13.8 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 1144. 递减元素使数组呈锯齿状(奇偶分别遍历)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 186. 翻转字符串里
- 下一篇: Pandas入门2(DataFuncti