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

資訊專欄INFORMATION COLUMN

【Leetcode】80. 刪除排序數(shù)組中的重復(fù)項(xiàng) II

dinfer / 410人閱讀

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

題目

給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素最多出現(xiàn)兩次,返回移除后數(shù)組的新長(zhǎng)度。
不要使用額外的數(shù)組空間,你必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成。

示例 1:
給定 nums = [1,1,1,2,2,3],
函數(shù)應(yīng)返回新長(zhǎng)度 length = 5, 并且原數(shù)組的前五個(gè)元素被修改為 1, 1, 2, 2, 3 。
你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。

示例 2:
給定 nums = [0,0,1,1,1,1,2,3,3],
函數(shù)應(yīng)返回新長(zhǎng)度 length = 7, 并且原數(shù)組的前五個(gè)元素被修改為 0, 0, 1, 1, 2, 3, 3 。
你不需要考慮數(shù)組中超出新長(zhǎng)度后面的元素。
說明:
為什么返回?cái)?shù)值是整數(shù),但輸出的答案是數(shù)組呢?
請(qǐng)注意,輸入數(shù)組是以“引用”方式傳遞的,這意味著在函數(shù)里修改輸入數(shù)組對(duì)于調(diào)用者是可見的。

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

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

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

這是一類問題,因?yàn)橛行虿拍苋コ貜?fù)項(xiàng),我們需要一個(gè)變量cnt去記錄出現(xiàn)了多少詞重復(fù)的元素,如果我們遍歷的時(shí)候遇到的元素不同,把這個(gè)變量設(shè)置成1,從頭開始急速,如果已經(jīng)超過了k個(gè),那么久跳過去。所以這里給出了最多重復(fù)k個(gè)的一個(gè)方法。

java
class Solution {
    public int removeDuplicates(int[] nums) {
        return removeDuplicates(nums, nums.length, 2);
    }
    
    int removeDuplicates(int A[], int n, int k) {

        if (n <= k) return n;

        int lengthIndex = 1;
        int cnt = 1;
        for (int j = 1; j < n; j++) {
            if (A[j] != A[j - 1]) {
                cnt = 1;
                A[lengthIndex++] = A[j];
            } else {
                if (cnt < k) {
                    A[lengthIndex++] = A[j];
                    cnt++;
                }
            }
        }
        return lengthIndex;
    }
}
Python
class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        return self.removeDuplicatesHelper(nums, len(nums), 2)

    def removeDuplicatesHelper(self, A, n, k):
        if n <= k:
            return n
        lengthIndex = 1
        cnt = 1
        for j in range(1, n):
            if A[j] != A[j - 1]:
                cnt = 1
                A[lengthIndex] = A[j]
                lengthIndex += 1
            else:
                if cnt < k:
                    A[lengthIndex] = A[j]
                    cnt += 1
                    lengthIndex += 1
        return lengthIndex
復(fù)雜度

空間復(fù)雜度:o(1)
時(shí)間復(fù)雜度:o(n)

熱門閱讀

9月技術(shù)文章匯總

【Leetcode】79.單詞搜索

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42614.html

相關(guān)文章

  • Leetcode】82. 刪除排序鏈表中的重復(fù)元素 II

    摘要:題目給定一個(gè)排序鏈表,刪除所有含有重復(fù)數(shù)字的節(jié)點(diǎn),只保留原始鏈表中沒有重復(fù)出現(xiàn)的數(shù)字。示例輸入輸出示例輸入輸出題解在所有題目中,我覺得鏈表題目是最簡(jiǎn)單的。具體畫圖模擬一道題就可以了。 題目 給定一個(gè)排序鏈表,刪除所有含有重復(fù)數(shù)字的節(jié)點(diǎn),只保留原始鏈表中 沒有重復(fù)出現(xiàn) 的數(shù)字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 2: 輸入: 1->...

    kelvinlee 評(píng)論0 收藏0
  • Leetcode】82. 刪除排序鏈表中的重復(fù)元素 II

    摘要:題目給定一個(gè)排序鏈表,刪除所有含有重復(fù)數(shù)字的節(jié)點(diǎn),只保留原始鏈表中沒有重復(fù)出現(xiàn)的數(shù)字。示例輸入輸出示例輸入輸出題解在所有題目中,我覺得鏈表題目是最簡(jiǎn)單的。具體畫圖模擬一道題就可以了。 題目 給定一個(gè)排序鏈表,刪除所有含有重復(fù)數(shù)字的節(jié)點(diǎn),只保留原始鏈表中 沒有重復(fù)出現(xiàn) 的數(shù)字。 示例 1: 輸入: 1->2->3->3->4->4->5 輸出: 1->2->5 示例 2: 輸入: 1->...

    xiaodao 評(píng)論0 收藏0
  • 70道前端LeetCode題目集合及視頻講解(持續(xù)更新中...)

    前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項(xiàng) 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項(xiàng)2 88 合并兩個(gè)有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...

    mayaohua 評(píng)論0 收藏0
  • 6-9月技術(shù)文章匯總

    摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說說你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...

    miya 評(píng)論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月上半月匯總(55 題攻略)

    摘要:微信公眾號(hào)記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...

    warmcheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<