[Codility] MissingInteger


  • 最初は、問題の理解ミスで整数の開始数から終了数までの間に抜けた数の問題を探す->すべての数の和をgaussで求めて、それを取り出して答えを探すのかと思っていましたが、やはり間違っていました!
  • この問題は、1つ以上の値の中で言及されていない最小数を検索する問題です.
    ==実は、問題がうまく理解できていれば、難しくないと思いますが、第3話try
  • def solution(A):
        # write your code in Python 3.6
        A = list(filter(lambda x : x > 0 ,set(A)))
        
        if len(A) == 0 :
            return 1
        
        A.sort()
        m = min(1,A[0])
        s = m
        for a in A:
            if a == s:
                s += 1
                m = s
                continue
            else :
                return min(m,s)
        return s

    others

    class Solution: 
    	def missingNumber(self, nums: List[int]) -> int:
        		max_num = max(nums) 
            	my_nums = set([num for num in range(max_num + 1)]) 
            	nums = set(nums) 
            	differ = my_nums - nums 
    
           		if len(differ) == 0: 
            		answer = max_num + 1 
            	else: 
            		answer = list(differ)[0] 
           		return answer
    最初は最小値を設定して交換しないだけでいいのですが...
    def solution(A):
        A.sort()
        min = 1
        for i in A:
            if i == min:
                min += 1
        return min