https://leetcode.cn/problems/remove-element/description/
解法一(java)
class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int x = 0;
for (int i = 0; i < len; i++) {
if (nums[i] == val) {
nums[i] = 51;
x++;
}
}
Arrays.sort(nums);
return len - x;
}
}
思路:定义一个重复数组的个数,遍历数组如果当前元素等于需要移除的元素,就把它设置为51(输入的数组最大为50),然后重复数组的个数加一,遍历结束后将数组排序,返回原数组的长度减去重复数组的个数。
解法二(java)
class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int x = 0;
for (int i = 0; i < len; i++) {
if (nums[i] != val) {
nums[x] = nums[i];
x++;
}
}
return x;
}
}
思路:定义一个输出的数组长度,遍历数组如果当前元素不等于需要移除的元素,就将当前元素的赋值给以输出数组长度为索引的原数组,输出数组的长度加一,最后返回输出数组的长度。