思路:
參考26題目雙指針的思想,只不過這道題不是快慢指針。
看到示例里面數組是無序的,也就是說后面的元素也是可能跟給定 val值相等的,那么怎么處理呢。就想到了從前往后遍歷,如果left對應的元素 == val時,就把最后一個元素挪過來,這樣既縮短了數組長度,也解決了后面元素不好比較的問題。
是我自己想出來的噢,我好棒哈哈哈哈
代碼
class Solution {
public:int removeElement(vector<int>& nums, int val) {int len = nums.size();int left = 0;int right = nums.size() - 1;while(left <= right){if(nums[left] == val){nums[left] = nums[right];right--;len--;}else if(nums[left] != val){left++;}else {continue;}}return len;}
};