iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
佛心分享-刷題不只是刷題

正拳的 Leetcode 150系列 第 2

[Day 2] 善用 Python 基本資料結構:集合 Set

  • 分享至 

  • xImage
  •  

Neetcode 150:從 Arrays & Hashing 開始

Neetcode 150 將 Leetcode 上的 150 個問題分為 18 個主題,我們先從最基礎的 Arrays & Hashing 開始。

第一個問題:Contains Duplicate

問題描述:找出 Array 中是否有重複的數字。這是一個基本的問題,常見於許多面試中。

解法:一個簡單而有效的解法是使用集合 (Set)。我們可以依次檢查每個數字,並將它們加入一個已經見過的集合 S 中。如果當前的數字已經存在於 S 中,那麼我們可以確定數字是重複的。

解答示例

class Solution(object):
    def containsDuplicate(self, nums):
        hset = set()
        for idx in nums:
            if idx in hset:
                return True
            else:
                hset.add(idx)
        return False

解答作者PratikSen07

對於集合,除了可以一個一個加入,也可以直接對列表建立集合,這樣可以得到一個更簡潔的解法:

def containsDuplicate(nums):
    return len(nums) != len(set(nums))

解答作者lifeisshort

這個方法的思路是:如果原始列表的長度與其轉換為集合後的長度不同,則表示有重複的數字。這樣的解法簡單且高效,利用了集合的唯一性特徵。

接下來,我們將繼續探索 Neetcode 150 中的其他問題,幫助大家更好地準備 coding 面試。

系列文章
[Day 1] 刷題從 Neetcode 網站開始
[Day 2] 善用 Python 基本資料結構:集合 Set
[Day 3] 善用 Python 基本資料結構:dictionary


上一篇
[Day 1] 刷題從 Neetcode 網站開始
下一篇
[Day 3] 善用 Python 基本資料結構:dictionary
系列文
正拳的 Leetcode 1506
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言