0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】欠落番号

Posted at

作るもの

与えられた整数リスト nums から欠けている整数を見つける関数。

実装

missing_numbers.py
def missingNumbers(nums):
    # 正の無限大の値を2つリストに追加しておくことで、ループ処理を簡略化する
    nums += [float("inf"), float("inf")]

    # 数値を変換して欠けている整数の位置を示す
    for index in range(len(nums) - 2):
        visited_index = abs(nums[index]) - 1  # 数値の絶対値から1引いた値が、位置を示す
        nums[visited_index] *= -1  # 指定された位置の数値を負に変換することで、その位置が存在することを示す

    missing = []
    # 正の数が残っている位置が、欠けている整数を示す
    for index, num in enumerate(nums):
        if num > 0:  # 正の数が残っている位置が、欠けている整数を示す
            missing.append(index + 1)  # インデックス+1が欠けている整数として追加される
    return missing


# テスト
if __name__ == "__main__":
    nums = [1, 3]
    print(missingNumbers(nums))
出力
[2, 4]

実装

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?