成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

LeetcCode 27:移除元素 Remove Element(python、java)

fxp / 3544人閱讀

摘要:公眾號愛寫給定一個數(shù)組和一個值,你需要原地移除所有數(shù)值等于的元素,返回移除后數(shù)組的新長度。示例給定函數(shù)應(yīng)該返回新的長度并且中的前五個元素為。注意這五個元素可為任意順序。如果索引和相等,則索引得到索引的值,并且前移一位。

公眾號:愛寫bug

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

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

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

Given an array nums and a value val, 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 by modifying the input array in-place with O(1) extra memory.

The order of elements can be changed. It doesn"t matter what you leave beyond the new length.

示例 1:

給定 nums = [3,2,2,3], val = 3,

函數(shù)應(yīng)該返回新的長度 2, 并且 nums 中的前兩個元素均為 2。

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

示例 2:

給定 nums = [0,1,2,2,3,0,4,2], val = 2,

函數(shù)應(yīng)該返回新的長度 5, 并且 nums 中的前五個元素為 0, 1, 3, 0, 4。

注意這五個元素可為任意順序。

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

說明:

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

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

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

Confused why the returned value is an integer but your answer is an array?

Note that the input array is passed in by reference, which means modification to the input array will be known to the caller as well.

Internally you can think of this:

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

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

? 只允許原數(shù)組修改,可以用雙指針,左指針 i 自左向右,右指針 j 從右向左。如果索引 i 和 val 相等,則索引 i 得到索引 j 的值,并且 j 前移一位。如果不相等,i 后移一位。

? 因為要求是返回修改后的長度并只考慮該長度的數(shù)組,那么就不用考慮該長度之后的數(shù)組,所以只需得到索引 j 的值,不用再把索引 j 的值改為索引 i的值。

Java:
class Solution {
    public int removeElement(int[] nums, int val) {
        int i=0,j=nums.length-1;//i-左指針;j-右指針
        while (i<=j){
            if(nums[i]==val){
                nums[i]=nums[j];//得到索引j的值,無需把索引j的值改為索引i的值
                j--;
            }else i++;
        }
        return j+1;
    }
}
Python3:
class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        i=0
        j=len(nums)-1
        while i<=j:
            if(nums[i]==val):
                nums[i]=nums[j]
                j-=1
            else:i+=1
        return j+1
總結(jié):

? 這道題本身很簡單,只要搞清思路,一起都會變得明了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/75135.html

相關(guān)文章

  • LeetcCode 27移除元素 Remove Elementpython、java

    摘要:公眾號愛寫給定一個數(shù)組和一個值,你需要原地移除所有數(shù)值等于的元素,返回移除后數(shù)組的新長度。示例給定函數(shù)應(yīng)該返回新的長度并且中的前五個元素為。注意這五個元素可為任意順序。如果索引和相等,則索引得到索引的值,并且前移一位。 公眾號:愛寫bug 給定一個數(shù)組 nums 和一個值 val,你需要原地移除所有數(shù)值等于 val 的元素,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地...

    K_B_Z 評論0 收藏0
  • LEETCODE刷題記錄【27 Remove Element

    摘要:復(fù)雜度分析時間復(fù)雜度遍歷次空間復(fù)雜度還有沒有優(yōu)化空間方法在某些特定場景下會進行不必要的復(fù)制操作,影響性能。注意尾部的元素有可能是需要剔除的,所以,下一輪循環(huán)要從當(dāng)前索引重新開始。 給定一個數(shù)組 nums?和一個值 val,你需要原地移除所有數(shù)值等于?val?的元素,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 元素的...

    馬龍駒 評論0 收藏0
  • ??導(dǎo)圖整理大廠面試高頻數(shù)組8: 移除元素的雙指針優(yōu)化, 力扣27??

    此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會加上我對導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進一步加強理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...

    zhangyucha0 評論0 收藏0
  • 捋一捋Python中的List(下)

    摘要:以上函數(shù)默認會對一個數(shù)字組成的數(shù)組進行按數(shù)字面值大小排序下午雷學(xué)委列表的其他函數(shù)持續(xù)學(xué)習(xí)持續(xù)開發(fā)效果如下,讀者可以仔細看看是否如學(xué)委所說。 正式的Python專...

    instein 評論0 收藏0
  • python LeetCode 27. 移除元素

    摘要:給定一個數(shù)組和一個值,你需要原地移除所有數(shù)值等于的元素,返回移除后數(shù)組的新長度。示例給定函數(shù)應(yīng)該返回新的長度并且中的前兩個元素均為。注意這五個元素可為任意順序。題解判斷元素在不在里面可以刪除中對應(yīng)值的第一個官方解答 給定一個數(shù)組 nums?和一個值 val,你需要原地移除所有數(shù)值等于?val?的元素,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O...

    cuieney 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<