【LeetCode】Remove Element

這是LeetCode中的一個(gè)題目,原題在這里。
問(wèn)題大意:
給一個(gè)數(shù)組nums和一個(gè)值val,刪除數(shù)組中的所有值為val的元素,并返回刪除后的數(shù)組新長(zhǎng)度。

解析:

  1. 兩個(gè)位置索引,分別是begin, i
  2. begin表示新數(shù)組末尾索引,初始化為0;i表示遍歷數(shù)組的索引變量,開(kāi)始為0
  3. 如果num[i] != val,則num[begin] = num[i],begin和i都加1
  4. 如果num[i] == val,則begin不變,i加1

時(shí)間復(fù)雜度為O(n),空間復(fù)雜度為O(1)

C++實(shí)現(xiàn)一

class Solution {
public:
    int removeElement(vector<int>& nums, int val) 
    {
        int begin = 0;
        for(int i = 0; i < nums.size(); ++i)
        {
            if(nums[i] != val)
                nums[begin++] = nums[i];
        }
        return begin;
    }
};

c++實(shí)現(xiàn)二

這里可以使用STL中的remove簡(jiǎn)化代碼

class Solution {
public:
    int removeElement(vector<int>& nums, int val) 
    {
       nums.erase(remove(nums.begin(),nums.end(),val), nums.end());
        return nums.size();
    }
};

本作品采用知識(shí)共享署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際許可協(xié)議進(jìn)行許可。轉(zhuǎn)載請(qǐng)注明: 作者staneyffer,首發(fā)于我的博客,原文鏈接: https://chengfy.com/post/6

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Given an array and a value, remove all instances of tha...
    lalulalula閱讀 1,186評(píng)論 0 0
  • My code: My test result: 這次作業(yè)感覺(jué)有點(diǎn)問(wèn)題,他說(shuō)是讓我返回新數(shù)組的長(zhǎng)度,那么我就直接遍...
    Richardo92閱讀 303評(píng)論 1 1
  • 題目 Given an array and a value, remove all instances of th...
    欒呱呱閱讀 115評(píng)論 0 0
  • 劉建東,陜西歌手,其歌豪放有余、婉約富足,感情充沛而細(xì)膩,歌中既浸透著濃濃的陜北民歌味兒,又不乏軍人金戈鐵馬、枕戈...
    領(lǐng)讀者趙友閱讀 392評(píng)論 2 4

友情鏈接更多精彩內(nèi)容