MySQLのこと。

MySQLのことについてまとめているブログ。他人に見せる用でもなく、自分の勉強備忘録。検索インデックスも外してるので、辿りついた方・・・ようこそ。そんな大した情報ないですよ?!たまにアルゴリズムの練習も

リストの中の重複を確認する

問題

今回の問題はリストの中の要素を検索し、重複しているものがあれば、そのタイミングでTrueを返すアルゴリズム。重複する要素がなければFalseを返す。

input: [1,2,3,1]
output: true

実装

方針としては、ディクショナリーに値を格納していき、要素をループで回しながら、判定を繰り返すという方法にします。


from typing import List

def contains_duplicate(numbers: List[int]) -> bool:
    len_numbers = len(numbers)

    if len_numbers <= 1:
        return False

    cache = {}
    for num in numbers:
        if num in cache:
            return True

        cache[num] = True

    return False


if __name__ == '__main__':
    numbers = [1,2,3,4,0,5,6,7,1]
    print(numbers)
    print(contains_duplicate(numbers))
    numbers = [1,2,3,4,0,5,6,7,100]
    print(numbers)
    print(contains_duplicate(numbers))

[1, 2, 3, 4, 0, 5, 6, 7, 1]
True
[1, 2, 3, 4, 0, 5, 6, 7, 100]
False