摘要:思路與代碼其實(shí)在這里我們?nèi)匀谎永m(xù)中的思路。在遇到非重復(fù)值以及非多余的重復(fù)值時(shí),將數(shù)值移動(dòng)到當(dāng)前記錄的下標(biāo)上。保證該下標(biāo)前的值均為滿足題目條件的值。第一次我使用了來(lái)記錄某個(gè)值出現(xiàn)的次數(shù)。
題目要求
Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? For example, Given sorted array nums = [1,1,1,2,2,3], Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn"t matter what you leave beyond the new length.
Remove Duplicates I 可以參考我的這篇博客
這題中添加了一個(gè)要求,就是允許存在兩個(gè)重復(fù)值。
其實(shí)在這里我們?nèi)匀谎永m(xù)I中的思路。在遇到非重復(fù)值以及非多余的重復(fù)值時(shí),將數(shù)值移動(dòng)到當(dāng)前記錄的下標(biāo)上。保證該下標(biāo)前的值均為滿足題目條件的值。
第一次我使用了count來(lái)記錄某個(gè)值出現(xiàn)的次數(shù)。
public int removeDuplicates(int[] nums) { int length = nums.length; if(length<=1){ return length; } int index = 1; int count = 1; for(int i = 1 ; i2) continue; }else{ count = 1; } nums[index++] = nums[i]; } return index; }
但是看了一下別人的代碼,發(fā)現(xiàn)既然是有序數(shù)組,則可以通過(guò)判斷該值和前前位置上的值是否相等即可知道該值是否多余。省去了多余的變量。
public int removeDuplicates2(int[] nums) { int i = 0; for (int n : nums) if (i < 2 || n > nums[i-2]) nums[i++] = n; return i; }
想要了解更多開(kāi)發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67303.html
摘要:雙指針?lè)◤?fù)雜度時(shí)間空間思路我們可以將不重復(fù)的序列存到數(shù)列前面,因?yàn)椴恢貜?fù)序列的長(zhǎng)度一定小于等于總序列,所以不用擔(dān)心覆蓋的問(wèn)題。代碼雙指針?lè)◤?fù)雜度時(shí)間空間思路思路和上題一樣,區(qū)別在于記錄前兩個(gè)遍歷到的數(shù)字來(lái)幫助我們判斷是否出現(xiàn)了第三遍。 Remove Duplicates from Sorted Array I Given a sorted array, remove the dupl...
摘要:思路原數(shù)組長(zhǎng)度為,則返回原數(shù)組長(zhǎng)度不為,則至少有個(gè)元素。將所有不重復(fù)的數(shù)值賦給,而當(dāng)和相等時(shí),不做處理。最后返回的就是不同元素的個(gè)數(shù),也是新數(shù)組的長(zhǎng)度。只有在時(shí),才對(duì)賦值。注意,每次初始化的時(shí)候要分兩種情況,這就意味著從的時(shí)候開(kāi)始遍歷。 Remove Duplicates from Sorted Array I Problem Given a sorted array, remove ...
摘要:題目要求翻譯將鏈表中重復(fù)的元素全部刪除,返回新的頭結(jié)點(diǎn)。相比于,這里將重復(fù)的元素全部刪除。除此以外,我們還需要知道重復(fù)元素的前一個(gè)值和重復(fù)元素的最后一個(gè)值。如果存在重復(fù)值,則跳過(guò)重復(fù)值后,前節(jié)點(diǎn)不變,否則前節(jié)點(diǎn)跟隨后節(jié)點(diǎn)同時(shí)向后移動(dòng)。 題目要求 Given a sorted linked list, delete all nodes that have duplicate number...
摘要:自己沒(méi)事刷的一些的題目,若有更好的解法,希望能夠一起探討項(xiàng)目地址 自己沒(méi)事刷的一些LeetCode的題目,若有更好的解法,希望能夠一起探討 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
摘要:微信公眾號(hào)記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱(chēng)和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...
閱讀 591·2021-11-15 11:38
閱讀 1174·2021-10-11 10:59
閱讀 3491·2021-09-07 09:58
閱讀 479·2019-08-30 15:44
閱讀 3518·2019-08-28 18:14
閱讀 2599·2019-08-26 13:32
閱讀 3514·2019-08-26 12:23
閱讀 2413·2019-08-26 10:59