見出し画像

LeetCode217 ContainsDuplicate

LeetCode挑戦1日目
とりあえず、書き書き。
どうやらLeetCodeでは Outputは return にのせればいいことを発見。

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        gen_num_list = []
        for num in nums:
            if num in gen_num_list:
                print("True")
                return True
            gen_num_list.append(num)
        print("False")
        return False

よし、debug 通った!提出!
「…とおもいきや、TimeExceeeded」

あきらめて、答えを見ました。
「…なるほど、set は早いって聞いたことがあるぞ。」

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        gen_num_set = {}
        for num in nums:
            if num in gen_num_set:
                return True
            gen_num_set.add(num)
        return False

dict に add()なんかありませんよエラー…
そうですね、 set()としなければいけません。

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        gen_num_set = set()
        for num in nums:
            if num in gen_num_set:
                # when add, check with 'in'
                return True
            # add each nums to new list
            gen_num_set.add(num)
        return False

ようやく提出。
無事通りましたが、メモリがかなり食ってそうです。
ひとまず1日目は終了ということで…


この記事が気に入ったらサポートをしてみませんか?