【LeetCode】 27 移除元素
阿新 • • 發佈:2018-12-04
解題思路:
1 最直接的,對陣列內等於val的值進行處理,令其後的元素依次覆蓋它,直到陣列尾。
2 反向思維,反正都要遍歷一遍陣列,直接將不等於val的元素覆蓋掉陣列內的元素,並記錄長度值即可。
程式碼(直接):
class Solution { public int removeElement(int[] nums, int val) { int length = nums.length; for (int i = 0;i < length;i++){ if (nums[i] == val){ length--; for (int j = i;j < nums.length - 1;j++){ nums[j] = nums[j+1]; } i--; } } return length; } }
程式碼(反向):
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;
}
}