iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0

217. Contains Duplicate

給定一個整數數組 nums,判斷其中是否存在重複元素。
如果任意數字在數組中出現至少兩次,返回 true;如果所有元素互不相同,則返回 false

程式碼

使用Hash Table的方法

class Solution:
    def containsDuplicate(self, nums):
        hash_table = {}  # 建立一個空字典
        for num in nums:
            if num in hash_table:  # 如果元素已經存在於 hash_table 中
                return True        # 表示有重複,返回 True
            hash_table[num] = 1    # 否則將元素加入 hash_table,值設為 1
        return False               # 若無重複元素,返回 False

使用Set的方法

class Solution:
    def containsDuplicate(nums):
        # 建立一個空的 Set
        seen = set()
        # 遍歷每個元素
        for num in nums:
            # 如果該元素已經在 Set 中,表示有重複元素
            if num in seen:
                return true
            # 否則將元素加入 Set 中
            seen.add(num)
        # 沒有重複元素,返回 false
        return False

349. Intersection of Two Arrays

給定兩個整數陣列 nums1nums2,返回兩個陣列的交集,輸出結果中的每個元素必須是唯一的(即不重複),並且可以按照任意順序進行返回。

程式碼

使用Hash Table的方法

class Solution:
    def intersection(self, nums1, nums2):
        # 使用 Hash Table 來儲存 nums1 的所有元素
        hash_table = set(nums1)
        # 檢查 nums2 中的元素是否存在於 Hash Table 中
        result = set()
        for num in nums2:
            if num in hash_table:
                result.add(num)
        # 返回結果轉為列表
        return list(result)

使用Set的方法

class Solution:
    def intersection(self, nums1, nums2):
        # 將兩個數組轉換為集合,去除重複元素
        set1 = set(nums1)
        set2 = set(nums2)
        # 使用集合的交集方法
        result = set1.intersection(set2)
        # 返回結果轉為列表
        return list(result)


上一篇
[Day15] 理解 Hash 的意義與用途:從雜湊函數到 Hash Table、Set 與 Map 的應用
下一篇
[Day17] 關於Hash的刷題筆記(350, 49)
系列文
[30天LeetCode挑戰] 每天一點演算法,讓技巧融會貫通30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言