leetcode-第11场双周赛-5088-等差数列中缺失的数字

题目描述:

 

 自己的提交:

class Solution:
    def missingNumber(self, arr: List[int]) -> int:
        if len(arr) == 2:
            return arr[0] + (arr[1] - arr[0]) //2
        if len(set(arr)) == 1:
            return arr[0]
        if arr[1]-arr[0] > 0:            
            m = min(arr[1]-arr[0],arr[-1]-arr[-2])
        else:
            m = max(arr[1]-arr[0],arr[-1]-arr[-2])
        for i in range(1,len(arr)):
            if arr[i] != arr[i-1] + m:
                return arr[i] - m

方法二:

class Solution:
    def missingNumber(self, a: List[int]) -> int:
        l = len(a)
        ma = max(a)
        mi = min(a)
        s = sum(a)
        return (ma+mi)*(l+1)//2-s

 

posted @ 2019-10-21 11:29  oldby  阅读(189)  评论(0编辑  收藏  举报