LeetCode筆記:27. Remove Element

問題:

Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.

大意:

給出一個(gè)數(shù)組和一個(gè)數(shù),移除數(shù)組中所有等于該數(shù)的值并返回新長度。
不要使用額外的空間來創(chuàng)建另一個(gè)數(shù)組,你必須在恒定的內(nèi)存中做。
元素的順序可以改變。新長度以外的內(nèi)容無所謂是什么樣子。

思路:

這道題的要求在于不創(chuàng)建新數(shù)組,而是在原有的數(shù)組內(nèi)容來進(jìn)行操作,按題目的意思就是將所有不等于那個(gè)值的數(shù)放到數(shù)組前面,然后返回這些數(shù)的數(shù)量,也就是數(shù)組的一個(gè)長度,這個(gè)長度后面的數(shù)是什么樣子的都沒有關(guān)系。

按照這個(gè)思路很明顯就是檢測(cè)如果不一樣就放到前面來了。我們弄兩個(gè)指針,一個(gè)遍歷數(shù)組中的數(shù),一個(gè)記錄不一樣的數(shù)的數(shù)量,那么記錄數(shù)量的數(shù)一定是小于等于遍歷的那個(gè)指針數(shù)的,所以每當(dāng)遍歷到不一樣的數(shù)時(shí),就放在數(shù)組中記錄不一樣的數(shù)的位置,因?yàn)榈诙€(gè)指針一定是不會(huì)大于第一個(gè)數(shù)的,所以不會(huì)存在覆蓋一些沒遍歷到的數(shù)的問題,這相當(dāng)于是把不一樣的數(shù)都集中到數(shù)組前面了,等遍歷完了,后面的數(shù)其實(shí)還是保持原樣的,跟題目要求的很契合。

代碼(Java):

public class Solution {
    public int removeElement(int[] nums, int val) {
        int position = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[position] = nums[i];
                position++;
            }
        }
        return position;
    }
}

合集:https://github.com/Cloudox/LeetCode-Record


查看作者首頁

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,921評(píng)論 0 33
  • leetcode刷題記錄本文記錄一下leetcode刷題記錄,記錄一下自己的解法和心得。 LeetCode Two...
    EarthChen閱讀 3,602評(píng)論 0 6
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,677評(píng)論 0 4
  • 326. Power of Three Given an integer, write a function to...
    跑者小越閱讀 2,231評(píng)論 0 1
  • 就一直往前走吧 不必停留也不必回頭 把我的青春留在這里 這里藏著我的故事 藏著我所做的夢(mèng) 離開這片哺乳我的土地 我...
    親愛的陳先生閱讀 275評(píng)論 0 0

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