iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
生成式 AI

Chatting with ChatGPT——一天學習一題Leetcode系列 第 7

禮拜日-Remove Duplicates from Sorted Array

  • 分享至 

  • xImage
  •  

開心放假還是要來一天一題!
今天的題目大意是: 給一個已排序的nums,要求你原地刪除重複元素,讓每個元素只出現一次,並回傳新的長度。

ChatGPT給的解題思路如下:

  • 陣列已排序 → 重複元素一定是連在一起的。

  • 我們用兩個指標:
    慢指標 (slow):標記「不重複區間」的最後一個位置。
    快指標 (fast):向前掃描陣列。

當 nums[fast] != nums[slow],代表找到新元素,移到 slow+1 的位置,最後 slow + 1 就是新長度。

class Solution {
    public int removeDuplicates(int[] nums) {
        if (nums.length == 0) {
            return 0;
        }

        int slow = 0; // 慢指標,標記「不重複區間」的尾端
        for (int fast = 1; fast < nums.length; fast++) {
            if (nums[fast] != nums[slow]) {
                slow++;
                nums[slow] = nums[fast];
            }
        }

        return slow + 1; // 陣列長度 = index + 1
       // 因為 slow 是最後一個不重複元素的 index,所以答案是 slow + 1。
    }
}

上一篇
Day6-LeetCode 20. Valid Parentheses
下一篇
新的一周-LeetCode 27: Remove Element
系列文
Chatting with ChatGPT——一天學習一題Leetcode9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言