精華區beta Marginalman 關於我們 聯絡資訊
26. Remove Duplicates from Sorted Array 給予你一個已排序整數陣列nums,我們要做兩件事: 1.找出該陣列共有幾個不重複數字。 2.若不重複數字有k個,我們需修改nums的前k個元素使其每個數字都不重複。 (題目額外要求空間複雜度需是O(1)) Example: Input: nums = [0,0,1,1,1,2,2,3,3,4] Output: 5, nums = [0,1,2,3,4,_,_,_,_,_] Explaintion:nums共有5個不重複數字,修改原nums的前k個元素。 思路: 1.令當前不重複數字curr為第一個數字,下個插入位置index為1。 2.從第二個數字開始遍歷,如果遇到和curr不同的數字表示遇到不重複的數字,更新curr 並插入到index的位置,持續第二步驟直到遍歷完。 3.返回index。 Java Code: ------------------------------------ class Solution { public int removeDuplicates(int[] nums) { int curr = nums[0]; int index = 1; for (int i = 1; i < nums.length; i++) { if (nums[i] != curr) { nums[index++] = nums[i]; curr = nums[i]; } } return index; } } ------------------------------------ 這題倒讚好多喔 我猜是一堆人沒閱讀題目根本不知道要修改原陣列(函數只返回一個int) -- https://i.imgur.com/7bZXdBG.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.111.108 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1668138803.A.E13.html
fxfxxxfxx: 這不是跟昨天的幾乎一樣嗎= = 怎麼感覺看好多次了 11/11 11:58
Rushia: 昨天是字串 今天是整數ㄚ 11/11 12:00
Rushia: 而且這個有排序好 11/11 12:01
pandix: 大師 11/11 12:18
GTR12534: 用 queue 做有沒有搞頭 11/11 15:06
pandix: 用 queue 空間就不是O(1)了 11/11 16:39
NTHUlagka: 大師 11/11 21:06
GTR12534: 把 nums 本身當成 queue 啊 11/12 15:04