国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

( 數(shù)組) 27. 移除元素 ——【Leetcode每日一題】

這篇具有很好參考價(jià)值的文章主要介紹了( 數(shù)組) 27. 移除元素 ——【Leetcode每日一題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?27. 移除元素

難度:簡單

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

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

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

說明:

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

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

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

// nums 是以“引用”方式傳遞的。也就是說,不對(duì)實(shí)參作任何拷貝
int len = removeElement(nums, val);

// 在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見的。
// 根據(jù)你的函數(shù)返回的長度, 它會(huì)打印出數(shù)組中 該長度范圍內(nèi) 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

示例 1:

輸入:nums = [3,2,2,3], val = 3
輸出:2, nums = [2,2]
解釋:函數(shù)應(yīng)該返回新的長度 2, 并且 nums 中的前兩個(gè)元素均為 2。你不需要考慮數(shù)組中超出新長度后面的元素。例如,函數(shù)返回的新長度為 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也會(huì)被視作正確答案。

示例 2:

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

提示

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

??思路:雙指針

使用雙指針遍歷,l 從左往右遍歷, h 用右往左遍歷:

  • 當(dāng) l 找到 val時(shí),停下,當(dāng) h 找到不等于val 的時(shí)候停下,將 h 所指的數(shù)賦值給 l ;
  • 然后繼續(xù)遍歷,直到 l > h時(shí)停止;
  • 最后h 所指的就是新數(shù)組的最后一個(gè)元素;

??代碼:(Java、C++)

Java

class Solution {
    public int removeElement(int[] nums, int val) {
        int n = nums.length;
        int l = 0, h = n - 1;
        while(l <= h){
            while(l < n && nums[l] != val) l++;
            while(h >= 0 && nums[h] == val) h--;
            if(l > h) break;
            nums[l++] = nums[h--];
        }
        return h + 1;
    }
}

C++

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int n = nums.size();
        int l = 0, h = n - 1;
        while(l <= h){
            while(l < n && nums[l] != val) l++;
            while(h >= 0 && nums[h] == val) h--;
            if(l > h) break;
            nums[l++] = nums[h--];
        }
        return h + 1;
    }
};
?? 運(yùn)行結(jié)果:

( 數(shù)組) 27. 移除元素 ——【Leetcode每日一題】

?? 復(fù)雜度分析:
  • 時(shí)間復(fù)雜度 O ( n ) O(n) O(n),其中 n 為數(shù)組的長度。
  • 空間復(fù)雜度 O ( 1 ) O(1) O(1)。

題目來源:力扣。

放棄一件事很容易,每天能堅(jiān)持一件事一定很酷,一起每日一題吧!
關(guān)注我LeetCode主頁 / CSDN—力扣專欄,每日更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-475469.html

注: 如有不足,歡迎指正!

到了這里,關(guān)于( 數(shù)組) 27. 移除元素 ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 每日一題——LeetCode1287.有序數(shù)組中出現(xiàn)次數(shù)超過25%的元素

    每日一題——LeetCode1287.有序數(shù)組中出現(xiàn)次數(shù)超過25%的元素

    方法一 一次循環(huán)統(tǒng)計(jì) 題目給出的數(shù)據(jù)相同的元素都是相鄰的,那么直接從頭開始遍歷,統(tǒng)計(jì)每種元素出現(xiàn)次數(shù),當(dāng)有元素次數(shù)超過arr.length/4即為要求的元素 ? 消耗時(shí)間和內(nèi)存情況: 方法二 方法一簡化版 設(shè)步長step=arr.length/4,如果某個(gè)元素arr[i],跨越一個(gè)步長后arr[i+step],即

    2024年01月22日
    瀏覽(27)
  • 每日一題leetcode--使循環(huán)數(shù)組所有元素相等的最少秒數(shù)

    每日一題leetcode--使循環(huán)數(shù)組所有元素相等的最少秒數(shù)

    相當(dāng)于擴(kuò)散,每個(gè)數(shù)可以一次可以擴(kuò)散到左右讓其一樣,問最少多少次可以讓整個(gè)數(shù)組都變成一樣的數(shù) 使用枚舉,先將所有信息存到hash表中,然后逐一進(jìn)行枚舉,計(jì)算時(shí)間長短用看下圖 ?考慮到環(huán)形數(shù)組,可以把首項(xiàng)+n放到最后,這樣for循環(huán)就相當(dāng)于前后可以聯(lián)通 貼一張別

    2024年02月12日
    瀏覽(22)
  • ( 數(shù)組和矩陣) 378. 有序矩陣中第 K 小的元素 ——【Leetcode每日一題】

    ( 數(shù)組和矩陣) 378. 有序矩陣中第 K 小的元素 ——【Leetcode每日一題】

    難度:中等 給你一個(gè) n x n n x n n x n 矩陣 m a t r i x matrix ma t r i x ,其中每行和每列元素均按升序排序,找到矩陣中第 k 小的元素。 請(qǐng)注意,它是 排序后 的第 k 小元素,而不是第 k 個(gè) 不同 的元素。 你必須找到一個(gè)內(nèi)存復(fù)雜度優(yōu)于 O ( n 2 ) O(n^2) O ( n 2 ) 的解決方案。 示例 1:

    2024年02月14日
    瀏覽(26)
  • leetcode27.移除元素

    leetcode27.移除元素

    個(gè)人主頁:平行線也會(huì)相交 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 平行線也會(huì)相交 原創(chuàng) 收錄于專欄【LeetCode】 ??希望我們一起努力、成長,共同進(jìn)步。 ??題目鏈接 給你一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要 原地 移除所有數(shù)值等于 val 的元素,并返回移除后數(shù)組的新長

    2024年02月05日
    瀏覽(22)
  • 【LeetCode】27. 移除元素

    【LeetCode】27. 移除元素

    ?題目大概意思是剔除nums數(shù)組中出現(xiàn)的所有val值。可以用 快慢雙指針法 來做。 快的指針在前面遍歷找值不為val的元素的下標(biāo),慢的負(fù)責(zé)接收值不為val的元素,并及時(shí)更新數(shù)組。 ?

    2024年02月14日
    瀏覽(19)
  • 力扣--數(shù)組類題目27. 移除元素

    給你一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要 原地 移除所有數(shù)值等于 val 的元素,并返回移除后數(shù)組的新長度。 示例 1: 輸入:nums = [3,2,2,3], val = 3 輸出:2, nums = [2,2] 解釋:函數(shù)應(yīng)該返回新的長度 2, 并且 nums 中的前兩個(gè)元素均為 2。你不需要考慮數(shù)組中超出新長度后面的元素。例

    2024年02月11日
    瀏覽(12)
  • 移除鏈表元素_每日一題

    移除鏈表元素_每日一題

    “路雖遠(yuǎn),行則將至” ??主頁: 小賽毛 ?今日份刷題:移除鏈表元素 給你一個(gè)鏈表的頭節(jié)點(diǎn)? head ?和一個(gè)整數(shù)? val ?,請(qǐng)你刪除鏈表中所有滿足? Node.val == val ?的節(jié)點(diǎn),并返回? 新的頭節(jié)點(diǎn) ?。 示例1: ?示例2: 示例 3: 題目分析: 這里需要注意一點(diǎn)的是:在oj題目里

    2024年02月09日
    瀏覽(22)
  • 27.移除元素+88.合并兩個(gè)有序數(shù)組

    27.移除元素+88.合并兩個(gè)有序數(shù)組

    目錄 一、移除元素 (一)題目 (二)代碼? 二、合并兩個(gè)有序數(shù)組 (一)題目 (二)代碼 27. 移除元素 - 力扣(LeetCode) ? ? 88. 合并兩個(gè)有序數(shù)組 - 力扣(LeetCode)? ? 用雙指針 ?

    2023年04月14日
    瀏覽(29)
  • # - LeetCode 704-二分查找 |LeetCode 27-移除元素

    ## ?LeetCode 704-二分查找 -題目描述:給定一個(gè) n 個(gè)元素有序的(升序)整型數(shù)組 nums 和一個(gè)目標(biāo)值 target , -寫一個(gè)函數(shù)搜索 nums 中的 target,如果目標(biāo)值存在返回下標(biāo),否則返回 -1。 給定一個(gè) n 個(gè)元素有序的(升序)整型數(shù)組 nums 和一個(gè)目標(biāo)值 target ?, 寫一個(gè)函數(shù)搜索 nums

    2024年02月16日
    瀏覽(29)
  • 【每日一題】移除鏈表元素(C語言)

    【每日一題】移除鏈表元素(C語言)

    移除鏈表元素,鏈接奉上 在 正常 情況: 下我們移除鏈表元素時(shí),需要該位置的 前結(jié)點(diǎn)與后節(jié)點(diǎn) , 在 特別 情況時(shí): 例如 我們發(fā)現(xiàn),需要改變頭結(jié)點(diǎn),否則因?yàn)榉祷氐?head 因?yàn)橹赶虻奈恢帽?free ,會(huì)導(dǎo)致程序錯(cuò)誤 我們調(diào)試時(shí)可以在VS或其他的軟件進(jìn)行調(diào)試,也不用專門搞

    2024年02月05日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包