删除有序数组中的重复项 IIPython解法
生活随笔
收集整理的這篇文章主要介紹了
删除有序数组中的重复项 IIPython解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個有序數組 nums ,請你 原地 刪除重復出現的元素,使每個元素 最多出現兩次 ,返回刪除后數組的新長度。
不要使用額外的數組空間,你必須在 原地 修改輸入數組 并在使用 O(1) 額外空間的條件下完成。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii
?
例:
輸入:nums = [1,1,1,2,2,3]
輸出:5, nums = [1,1,2,2,3]
解釋:函數應返回新長度 length = 5, 并且原數組的前五個元素被修改為 1, 1, 2, 2, 3 。 不需要考慮數組中超出新長度后面的元素。
解析:
設置一個指針,指針負責填值,當相同值超過兩個時,直接跳過,指針也不移動,遍歷繼續前進,新遍歷的值和指針的前兩個值進行比較,看是否超過了兩個,如果不同放入指針所指的位置,然后繼續前進,直至遍歷完返回指針的值即可。
class Solution(object):def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""flag = 0 # 指針for k in nums: # 遍歷if flag < 2 or k != nums[flag-2]: # 判斷nums[flag] = kflag += 1 # 指針后移return flag總結
以上是生活随笔為你收集整理的删除有序数组中的重复项 IIPython解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 矩阵置零Python解法
- 下一篇: 美团王莆中:2022年美团外卖老年消费者