深圳公司網(wǎng)站建設設計肇慶seo
給你一個?升序排列?的數(shù)組?nums
?,請你?原地?刪除重復出現(xiàn)的元素,使每個元素?只出現(xiàn)一次?,返回刪除后數(shù)組的新長度。元素的?相對順序?應該保持?一致?。然后返回?nums
?中唯一元素的個數(shù)。
考慮?nums
?的唯一元素的數(shù)量為?k
?,你需要做以下事情確保你的題解可以被通過:
- 更改數(shù)組?
nums
?,使?nums
?的前?k
?個元素包含唯一元素,并按照它們最初在?nums
?中出現(xiàn)的順序排列。nums
?的其余元素與?nums
?的大小不重要。 - 返回?
k
?。
判題標準:
系統(tǒng)會用下面的代碼來測試你的題解:
int[] nums = [...]; // 輸入數(shù)組 int[] expectedNums = [...]; // 長度正確的期望答案int k = removeDuplicates(nums); // 調用assert k == expectedNums.length; for (int i = 0; i < k; i++) {assert nums[i] == expectedNums[i]; }
如果所有斷言都通過,那么您的題解將被?通過。
示例 1:
輸入:nums = [1,1,2] 輸出:2, nums = [1,2,_] 解釋:函數(shù)應該返回新的長度2
,并且原數(shù)組 nums 的前兩個元素被修改為1
,2
。
不需要考慮數(shù)組中超出新長度后面的元素。
示例 2:
輸入:nums = [0,0,1,1,1,2,2,3,3,4] 輸出:5, nums = [0,1,2,3,4] 解釋:函數(shù)應該返回新的長度5
, 并且原數(shù)組 nums 的前五個元素被修改為0
,1
,2
,3
,4
。不需要考慮數(shù)組中超出新長度后面的元素。
提示:
1 <= nums.length <= 3 * 104
-104 <= nums[i] <= 104
nums
?已按?升序?排列
class Solution {public int removeDuplicates(int[] nums) {if(nums.length<2){return nums.length;}int slow=1,fast=1;while(fast<nums.length){if(nums[fast]!=nums[fast-1]){nums[slow++]=nums[fast++];}else{fast++;}}return slow;}
}