Open azl397985856 opened 2 months ago
class Solution {
public:
int removeDuplicates(vector
class Solution {
public int removeDuplicates(int[] nums) {
int i = 0;
int j = 0;
while(j < nums.length){
if(nums[i] == nums[j]){
j ++;
}
else{
i ++;
nums[i] = nums[j];
j ++;
}
}
return i+1;
}
}
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
diffs = set()
l, r, ans = 0, 0, 1
diffs.add(nums[0])
for r in range(1, len(nums)):
if nums[r] in diffs:
continue
else:
l += 1
nums[l] = nums[r]
ans += 1
diffs.add(nums[r])
return ans
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
if len(nums) == 1:
return 1
left = 0
for right in range(1,len(nums)):
if nums[left] != nums[right]:
left+=1
nums[left] = nums[right]
return left + 1
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = nums.size();
int slow=1, fast=1;
while(fast<n){
if(nums[fast] != nums[fast-1]){
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
};
var removeDuplicates = function (nums) {
var len = nums.length;
if (len <= 1) {
return len;
}
var point = 0;
var map = new Map();
map.set(nums[0], 1);
for (var i = 1; i <= len - 1; i++) {
if (!map.has(nums[i])) {
map.set(nums[i], 1);
point = point + 1;
nums[point] = nums[i];
}
}
return point + 1;
};
N 数据规模,
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function (nums) {
var p = 0;
var n = nums.length;
for (let i = 1; i < n; i++) {
if (nums[i] != nums[i - 1]) {
p++;
nums[p] = nums[i];
}
}
return p + 1;
};
时间复杂度:O(n) 空间复杂度:O(1)
26.删除排序数组中的重复项
入选理由
暂无
题目地址
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
前置知识
暂无
题目描述