Skip to content

Commit 9218a9c

Browse files
committed
feat: add solutions to leetcode problem: No.0026
1 parent 1b15c50 commit 9218a9c

File tree

7 files changed

+99
-42
lines changed

7 files changed

+99
-42
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252

5353
### 数组
5454

55+
- [删除排序数组中的重复项](/solution/0000-0099/0026.Remove%20Duplicates%20from%20Sorted%20Array/README.md)
5556
- [移除元素](/solution/0000-0099/0027.Remove%20Element/README.md)
5657
- [移动零](/solution/0200-0299/0283.Move%20Zeroes/README.md)
5758
- [数组中重复的数字](/lcof/面试题03.%20数组中重复的数字/README.md)

README_EN.md

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ Complete solutions to [LeetCode](https://leetcode-cn.com/problemset/all/), [LCOF
5252

5353
### Arrays
5454

55+
- [Remove Duplicates from Sorted Array](/solution/0000-0099/0026.Remove%20Duplicates%20from%20Sorted%20Array/README_EN.md)
5556
- [Remove Element](/solution/0000-0099/0027.Remove%20Element/README_EN.md)
5657
- [Move Zeroes](/solution/0200-0299/0283.Move%20Zeroes/README_EN.md)
5758
- [Rotate Array](/solution/0100-0199/0189.Rotate%20Array/README_EN.md)

solution/0000-0099/0026.Remove Duplicates from Sorted Array/README.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,50 @@ for (int i = 0; i < len; i++) {
5959
<!-- 这里可写当前语言的特殊实现逻辑 -->
6060

6161
```python
62-
62+
class Solution:
63+
def removeDuplicates(self, nums: List[int]) -> int:
64+
cnt, n = 0, len(nums)
65+
for i in range(1, n):
66+
if nums[i] == nums[i - 1]:
67+
cnt += 1
68+
else:
69+
nums[i - cnt] = nums[i]
70+
return n - cnt
6371
```
6472

6573
### **Java**
6674

6775
<!-- 这里可写当前语言的特殊实现逻辑 -->
6876

6977
```java
78+
class Solution {
79+
public int removeDuplicates(int[] nums) {
80+
int cnt = 0, n = nums.length;
81+
for (int i = 1; i < n; ++i) {
82+
if (nums[i] == nums[i - 1]) ++cnt;
83+
else nums[i - cnt] = nums[i];
84+
}
85+
return n - cnt;
86+
}
87+
}
88+
```
7089

90+
### **JavaScript**
91+
92+
```js
93+
/**
94+
* @param {number[]} nums
95+
* @return {number}
96+
*/
97+
var removeDuplicates = function (nums) {
98+
let cnt = 0;
99+
const n = nums.length;
100+
for (let i = 1; i < n; ++i) {
101+
if (nums[i] == nums[i - 1]) ++cnt;
102+
else nums[i - cnt] = nums[i];
103+
}
104+
return n - cnt;
105+
};
71106
```
72107

73108
### **...**

solution/0000-0099/0026.Remove Duplicates from Sorted Array/README_EN.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,48 @@ for (int i = 0; i &lt; len; i++) {
7171
### **Python3**
7272

7373
```python
74-
74+
class Solution:
75+
def removeDuplicates(self, nums: List[int]) -> int:
76+
cnt, n = 0, len(nums)
77+
for i in range(1, n):
78+
if nums[i] == nums[i - 1]:
79+
cnt += 1
80+
else:
81+
nums[i - cnt] = nums[i]
82+
return n - cnt
7583
```
7684

7785
### **Java**
7886

7987
```java
88+
class Solution {
89+
public int removeDuplicates(int[] nums) {
90+
int cnt = 0, n = nums.length;
91+
for (int i = 1; i < n; ++i) {
92+
if (nums[i] == nums[i - 1]) ++cnt;
93+
else nums[i - cnt] = nums[i];
94+
}
95+
return n - cnt;
96+
}
97+
}
98+
```
8099

100+
### **JavaScript**
101+
102+
```js
103+
/**
104+
* @param {number[]} nums
105+
* @return {number}
106+
*/
107+
var removeDuplicates = function (nums) {
108+
let cnt = 0;
109+
const n = nums.length;
110+
for (let i = 1; i < n; ++i) {
111+
if (nums[i] == nums[i - 1]) ++cnt;
112+
else nums[i - cnt] = nums[i];
113+
}
114+
return n - cnt;
115+
};
81116
```
82117

83118
### **...**
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
class Solution {
22
public int removeDuplicates(int[] nums) {
3-
if(nums == null || nums.length == 0) {
4-
return 0;
3+
int cnt = 0, n = nums.length;
4+
for (int i = 1; i < n; ++i) {
5+
if (nums[i] == nums[i - 1]) ++cnt;
6+
else nums[i - cnt] = nums[i];
57
}
6-
7-
int j = 0;
8-
for(int i = 1; i < nums.length; i++) {
9-
if(nums[i] != nums[j]) {
10-
nums[++j] = nums[i];
11-
}
12-
}
13-
return j + 1;
8+
return n - cnt;
149
}
1510
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
1-
const removeDuplicates = function (nums) {
2-
let i = 1;
3-
let t = 0;
4-
let t2 = nums[0];
5-
let res = 1;
6-
let length = nums.length;
7-
for (let k = 1; k < length; k++) {
8-
if (nums[k] - nums[k - 1] !== 0 && nums[k] !== t2) {
9-
t2 = nums[k];
10-
t = nums[i];
11-
nums[i] = nums[k];
12-
nums[k] = t;
13-
i++;
14-
res++;
15-
}
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var removeDuplicates = function (nums) {
6+
let cnt = 0;
7+
const n = nums.length;
8+
for (let i = 1; i < n; ++i) {
9+
if (nums[i] == nums[i - 1]) ++cnt;
10+
else nums[i - cnt] = nums[i];
1611
}
17-
return res;
12+
return n - cnt;
1813
};
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
#48ms
2-
class Solution(object):
3-
def removeDuplicates(self, nums):
4-
if not nums:
5-
return 0
6-
7-
newtail = 0
8-
9-
for i in range(1, len(nums)):
10-
if nums[i] != nums[newtail]:
11-
newtail += 1
12-
nums[newtail] = nums[i] #只要求字符串前段正确即可
13-
14-
return newtail + 1 #要求返回新字符串长度
1+
class Solution:
2+
def removeDuplicates(self, nums: List[int]) -> int:
3+
cnt, n = 0, len(nums)
4+
for i in range(1, n):
5+
if nums[i] == nums[i - 1]:
6+
cnt += 1
7+
else:
8+
nums[i - cnt] = nums[i]
9+
return n - cnt

0 commit comments

Comments
 (0)