給你一個數組?nums
?和一個值?val
,你需要?原地?移除所有數值等于?val
?的元素。元素的順序可能發生改變。然后返回?nums
?中與?val
?不同的元素的數量。
假設?nums
?中不等于?val
?的元素數量為?k
,要通過此題,您需要執行以下操作:
- 更改?
nums
?數組,使?nums
?的前?k
?個元素包含不等于?val
?的元素。nums
?的其余元素和?nums
?的大小并不重要。 - 返回?
k
。
class Solution {// 方法:移除數組中所有值為 val 的元素,返回新長度public int removeElement(int[] nums, int val) {int newLength = 0; // 用于記錄新數組的有效長度(寫入的位置)// 遍歷整個原數組for (int num : nums) {// 如果當前元素不是要刪除的值if (num != val) {nums[newLength++] = num; // 把這個元素保留下來,寫到前面的位置}}return newLength; // 返回保留下來元素的個數(即新數組長度)}
}