摘要:描述給定一個有序數(shù)組,你需要原地刪除其中的重復內容,使每個元素只出現(xiàn)一次并返回新的長度。最后慢指針指向的元素及前面所有元素都是不重復的。
描述:
給定一個有序數(shù)組,你需要原地刪除其中的重復內容,使每個元素只出現(xiàn)一次,并返回新的長度。
不要另外定義一個數(shù)組,您必須通過用 O(1) 額外內存原地修改輸入的數(shù)組來做到這一點。
示例:
給定數(shù)組: nums = [1,1,2], 你的函數(shù)應該返回新長度 2, 并且原數(shù)組nums的前兩個元素必須是1和2 不需要理會新的數(shù)組長度后面的元素實現(xiàn)
重復的需要去掉,無非就是遍歷數(shù)組,發(fā)現(xiàn)重復,就把后面的往前移,把重復值覆蓋掉。具體說,可以維護2個指針,慢指針開始指向數(shù)組第一個元素,快指針指向第二個元素,然后快指針不斷判斷自己當前元素和前一個元素是否相同,相同則快指針后移,不相同則將當前值賦值給慢指針的后一個元素,慢指針后移。最后慢指針指向的元素及前面所有元素都是不重復的。具體過程參考如下代碼和注釋:
class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums) <= 1: return len(nums) s = 0 for f in range(1, len(nums)): if nums[s] != nums[f]: s += 1 nums[s] = nums[f] return s + 1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/41492.html
給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and re...
給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and re...
摘要:每個線性表上的數(shù)據最多只有前和后兩個方向。數(shù)組鏈表隊列棧等就是線性表結構。非線性表數(shù)據之間并不是簡單的前后關系。不包含任何元素的棧稱為空棧。移除棧頂?shù)脑?,同時返回被移除的元素。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 基礎知識就像是一座大樓的地基,它決定了我們的技術高度。 我們應該多掌握一些可移值的...
摘要:使用兩種方式實現(xiàn)劉備張飛關羽通過循環(huán)累加劉備張飛關羽可以把數(shù)組中的元素鏈接成字符串劉備張飛關羽將一個字符串數(shù)組的元素的順序進行反轉。 數(shù)組API API: Application Programming Interface,應用程序編程接口; js中對象提供的方法就叫做API; instanceof 檢測一個對象是否是數(shù)組;(用來對付復雜數(shù)據類型;) // 簡單數(shù)據類型 typeo...
閱讀 1937·2021-11-11 16:55
閱讀 808·2019-08-30 15:53
閱讀 3667·2019-08-30 15:45
閱讀 796·2019-08-30 14:10
閱讀 3327·2019-08-30 12:46
閱讀 2182·2019-08-29 13:15
閱讀 2083·2019-08-26 13:48
閱讀 988·2019-08-26 12:23