国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode-數(shù)組-刪除元素

chenatu / 2872人閱讀

摘要:題目描述給定一個數(shù)組和一個值,你需要原地移除所有數(shù)值等于的元素,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用額外空間的條件下完成。元素的順序可以改變。你不需要考慮數(shù)組中超出新長度后面的元素。

題目描述

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

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

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

解題思路
本題解題思路與上一篇的刪除有序數(shù)組重復元素類似,如下所示:

設定左右指針 i, j,變量 count 用于計數(shù)

指針 i 從左向右移動,判斷元素是否等于 val;當于 val 相等時 count--, 并移動指針 j,當于 val 不等時指針 i 繼續(xù)向右移動

當指針 j 移動時,判斷元素是否等于 val; 當于 val 相等時 count-- 繼續(xù)移動指針 j, 當不等時互換 i, j 元素并繼續(xù)移動指針 i

當指針 i,j 交匯時完成退出輪詢

可見如下圖示:

實現(xiàn)
public int removeElement(int[] nums, int val) {
    int i = 0, count = nums.length, j = count;

    while (true) {
        while (i < j) {
            if (nums[i] == val) {
                count--;
                break;
            } else {
                if (i + 1 == j) {
                    break;
                }

                i++;
            }
        }

        while (j > i) {
            j--;

            if (j == i) {
                break;
            }

            if (nums[j] == val) {
                count--;
            } else {
                nums[i] = nums[j];
                i++;
                break;
            }
        }

        if (i >= j) {
            break;
        }

    }

    return count;
}

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73490.html

相關文章

  • LeetCode-數(shù)組-刪除有序數(shù)組重復元素

    摘要:題目描述給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。給定數(shù)組函數(shù)應該返回新的長度并且原數(shù)組的前兩個元素被修改為。 題目描述 給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 給定數(shù)組 num...

    mmy123456 評論0 收藏0
  • Leetcode】80. 刪除排序數(shù)組中的重復項 II

    摘要:題目給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素最多出現(xiàn)兩次,返回移除后數(shù)組的新長度。示例給定函數(shù)應返回新長度并且原數(shù)組的前五個元素被修改為。也就是說,不對實參做任何拷貝在函數(shù)里修改輸入數(shù)組對于調用者是可見的。 題目 給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素最多出現(xiàn)兩次,返回移除后數(shù)組的新長度。不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在...

    dinfer 評論0 收藏0
  • LeetCode-Remove Element-從排序數(shù)組刪除重復項

    摘要:描述給定一個有序數(shù)組,你需要原地刪除其中的重復內容,使每個元素只出現(xiàn)一次并返回新的長度。最后慢指針指向的元素及前面所有元素都是不重復的。 描述: 給定一個有序數(shù)組,你需要原地刪除其中的重復內容,使每個元素只出現(xiàn)一次,并返回新的長度。不要另外定義一個數(shù)組,您必須通過用 O(1) 額外內存原地修改輸入的數(shù)組來做到這一點。示例: 給定數(shù)組: nums = [1,1,2], 你的函數(shù)應該返回新...

    dayday_up 評論0 收藏0
  • 【刷算法】LeetCode.26-從排序數(shù)組刪除重復項

    摘要:題目描述給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。示例給定函數(shù)應該返回新的長度并且原數(shù)組的前五個元素被修改為。也就是說,不對實參做任何拷貝在函數(shù)里修改輸入數(shù)組對于調用者是可見的。 題目描述 給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸...

    wua_wua2012 評論0 收藏0
  • ?LeetCode 26:刪除排序數(shù)組中的重復項 Remove Duplicates from So

    給定一個排序數(shù)組,你需要在原地刪除重復出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度。 不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and re...

    Alan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<