LeetCode 27. Remove Element [Easy]

这道题可以和第283题 Remove Zeros 使用同样的思路解决。

题目来源:https://leetcode.com/problems/remove-element/

题目难度:Easy

解答1[Java]

思路

代码

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
for (int j = 0; j < nums.length; j++) {
if (nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
return i;
}
}

复杂度分析

时间复杂度:$O(n)$

空间复杂度:$O(1)$

解答2[Java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public int removeElement(int[] nums, int val) {
int head = 0;
int tail = nums.length;
while (head < tail) {
if (nums[head] == val) {
nums[head] = nums[tail - 1];
tail--;
} else {
head++;
}
}

return tail;
}
}