LeetCode-027-移除元素

移除元素

題目描述:給你一個(gè)數(shù)組 nums 和一個(gè)值 val炎功,你需要 原地 移除所有數(shù)值等于 val 的元素烧董,并返回移除后數(shù)組的新長度凸郑。

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

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

示例說明請(qǐng)見LeetCode官網(wǎng)。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/remove-element/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有填具。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán)统舀,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處匆骗。

解法一:交換位置
  • 首先,如果數(shù)組為空或者數(shù)組的長度為0誉简,直接返回0碉就;
  • 然后,如果數(shù)組不為空闷串,遍歷數(shù)組瓮钥,count記錄和val值不相同的數(shù)目(也就是最后的返回值),index表示從0開始遍歷烹吵,reverseCount表示交換數(shù)字的次數(shù)碉熄,具體遍歷過程如下:
    • 當(dāng)index對(duì)應(yīng)的值不等于val時(shí),count加1肋拔,并且index加1也就是往后移一位锈津;
    • 當(dāng)index對(duì)應(yīng)的值等于val時(shí),判斷index是否后面可遍歷的位數(shù)凉蜂,如果是琼梆,則將index和可遍歷的最后一位交換數(shù)字,并且reverseCount+1窿吩,然后繼續(xù)遍歷茎杂;如果不是,則沒有可交換的位置纫雁,即已經(jīng)遍歷完成煌往。返回count值。
public class LeetCode_027 {
    public static int removeElement(int[] nums, int val) {
        if (nums == null || nums.length == 0) {
            return 0;
        }
        int count = 0;
        int index = 0;
        int reverseCount = 0;
        while (index < nums.length - reverseCount) {
            if (nums[index] != val) {
                index++;
                count++;
            } else {
                if (index < (nums.length - 1 - reverseCount)) {
                    int temp = nums[index];
                    nums[index] = nums[nums.length - 1 - reverseCount];
                    nums[nums.length - 1 - reverseCount] = temp;
                    reverseCount++;
                } else {
                    break;
                }
            }
        }
        return count;
    }

    public static void main(String[] args) {
        int[] nums = new int[]{1};
        System.out.println(removeElement(nums, 1));
        System.out.println();
        for (int num : nums) {
            System.out.print(num + " ");
        }
    }
}

【每日寄語】 昨天是歷史先较,明天是謎團(tuán)携冤,只有今天是天賜的禮物悼粮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闲勺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子扣猫,更是在濱河造成了極大的恐慌菜循,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件申尤,死亡現(xiàn)場離奇詭異癌幕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)昧穿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門勺远,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人时鸵,你說我怎么就攤上這事胶逢√梗” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵初坠,是天一觀的道長和簸。 經(jīng)常有香客問我,道長碟刺,這世上最難降的妖魔是什么锁保? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮半沽,結(jié)果婚禮上爽柒,老公的妹妹穿的比我還像新娘。我一直安慰自己抄囚,他們只是感情好霉赡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幔托,像睡著了一般穴亏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上重挑,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天嗓化,我揣著相機(jī)與錄音,去河邊找鬼谬哀。 笑死刺覆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的史煎。 我是一名探鬼主播谦屑,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼篇梭!你這毒婦竟也來了氢橙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤恬偷,失蹤者是張志新(化名)和其女友劉穎悍手,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袍患,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坦康,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诡延。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滞欠。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肆良,靈堂內(nèi)的尸體忽然破棺而出筛璧,到底是詐尸還是另有隱情赤兴,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布隧哮,位于F島的核電站桶良,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沮翔。R本人自食惡果不足惜陨帆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望采蚀。 院中可真熱鬧疲牵,春花似錦、人聲如沸榆鼠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妆够。三九已至识啦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間神妹,已是汗流浹背颓哮。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸵荠,地道東北人冕茅。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像蛹找,于是被迫代替她去往敵國和親姨伤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • 給你一個(gè)數(shù)組 nums 和一個(gè)值 val庸疾,你需要 原地 移除所有數(shù)值等于 val 的元素乍楚,并返回移除后數(shù)組的新長度...
    刻苦驢噥閱讀 250評(píng)論 0 0
  • 27.移除元素 給定一個(gè)數(shù)組 nums 和一個(gè)值 val,你需要原地移除所有數(shù)值等于 val 的元素彼硫,返回移除后數(shù)...
    跟著風(fēng)行走閱讀 906評(píng)論 0 1
  • LeetCode --- 字符串炊豪、數(shù)組簡書專欄:http://www.reibang.com/nb/417965...
    KM_0d16閱讀 119評(píng)論 0 0
  • 移除元素(簡單) 1. 題目描述 給定一個(gè)數(shù)組 nums 和一個(gè)值 val凌箕,你需要原地移除所有數(shù)值等于 val 的...
    Java全棧路線閱讀 159評(píng)論 0 1
  • 給你一個(gè)數(shù)組 nums和一個(gè)值 val拧篮,你需要 原地 移除所有數(shù)值等于val的元素,并返回移除后數(shù)組的新長度牵舱。 不...
    出門遇見山閱讀 168評(píng)論 0 1