27. 移除元素

給定一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要原地移除所有數(shù)值等于 *val *的元素,返回移除后數(shù)組的新長(zhǎng)度。

不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

元素的順序可以改變。你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。

示例 1:

給定 nums = [3,2,2,3], val = 3,
函數(shù)應(yīng)該返回新的長(zhǎng)度 2, 并且 nums 中的前兩個(gè)元素均為 2
你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。

示例 2:

給定 nums = [0,1,2,2,3,0,4,2], val = 2,
函數(shù)應(yīng)該返回新的長(zhǎng)度 5, 并且 nums 中的前五個(gè)元素為 0, 1, 3, 0, 4
注意這五個(gè)元素可為任意順序。
你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。

說(shuō)明:
為什么返回?cái)?shù)值是整數(shù),但輸出的答案是數(shù)組呢?

請(qǐng)注意,輸入數(shù)組是以“引用”方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見(jiàn)的。

你可以想象內(nèi)部操作如下

nums 是以“引用”方式傳遞的。也就是說(shuō),不對(duì)實(shí)參作任何拷貝

這道題的描述很長(zhǎng),實(shí)際上刨除描述來(lái)看,就是把數(shù)組中所有的給定val都去掉,然后得到一個(gè)刪減后的數(shù)組(如果有空位需要用后面的補(bǔ)上)

使用一個(gè)index變量,記錄新數(shù)組的尾指針位置。
遍歷舊數(shù)組,和val相等則continue,不等則新數(shù)組增加一項(xiàng)
這道題所有操作都在一個(gè)給定數(shù)組num上執(zhí)行。
舊數(shù)組是nums[0-i]
新數(shù)組是nums[0-index]
隨著 i 的增加,index也相應(yīng)增加

具體代碼

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int index = 0;    //新數(shù)組尾指針為0
        for(int i = 0; i < nums.size(); i++){ //遍歷舊數(shù)組
            if(nums[i] == val){ //如果是需要?jiǎng)h去的值,直接跳過(guò)
                continue;
            }
            nums[index++] = nums[i]; //不需要?jiǎng)h去的值,放到新數(shù)組
        }
        return index; //返回新數(shù)組尾指針位置
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 27.移除元素 給定一個(gè)數(shù)組nums和一個(gè)值val,你需要原地移除所有數(shù)值等于val的元素,返回移除后數(shù)組的新長(zhǎng)度...
    不愛(ài)去冒險(xiǎn)的少年y閱讀 198評(píng)論 0 1
  • 內(nèi)容 給定一個(gè)數(shù)組 nums和一個(gè)值 val,你需要原地移除所有數(shù)值等于 val的元素,返回移除后數(shù)組的新長(zhǎng)度。 ...
    吃飯用盤(pán)裝閱讀 187評(píng)論 0 0
  • 20180928-摘抄自27. 移除元素 給定一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要原地**移除所有數(shù)值等于...
    moralok閱讀 195評(píng)論 0 0
  • 給定一個(gè)數(shù)組 *nums *和一個(gè)值 val,你需要原地移除所有數(shù)值等于 *val *的元素,返回移除后數(shù)組的新長(zhǎng)...
    vbuer閱讀 162評(píng)論 0 0
  • 問(wèn)題描述 給定一個(gè)數(shù)組和一個(gè)值,在這個(gè)數(shù)組中原地移除指定值和返回移除后新的數(shù)組長(zhǎng)度。 不要為其他數(shù)組分配額外空間,...
    Dy1an閱讀 221評(píng)論 0 0