力扣題目彙總(缺失數字,第三大的數,至少是其餘數字兩倍的最大數)

缺失數字

1.題目描述

  1. 給定一個包含 0, 1, 2, ..., nn 個數的序列,找出 0 .. n 中沒有出如今序列中的那個數。python

    示例 1:算法

    輸入: [3,0,1]
    輸出: 2

    示例 2:數組

    輸入: [9,6,4,2,3,5,7,0,1]
    輸出: 8

    說明: 你的算法應具備線性時間複雜度。你可否僅使用額外常數空間來實現?3.解題dom

2.解題思路

#沒出現的數字確定總和剪去給你的列表就是那個數字

3.解題

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        nums_sum = 0
        for a in range(len(nums)+1):
            nums_sum += a
        return nums_sum-sum(nums)

第三大的數

1.題目描述

  1. 給定一個非空數組,返回此數組中第三大的數。若是不存在,則返回數組中最大的數。要求算法時間複雜度必須是O(n)。spa

    示例 1:code

    輸入: [3, 2, 1]
    
    輸出: 1
    
    解釋: 第三大的數是 1.

    示例 2:排序

    輸入: [1, 2]
    
    輸出: 2
    
    解釋: 第三大的數不存在, 因此返回最大的數 2 .

    示例 3:索引

    輸入: [2, 2, 3, 1]
    
    輸出: 1
    
    解釋: 注意,要求返回第三大的數,是指第三大且惟一出現的數。
    存在兩個值爲2的數,它們都排第二。

2.解題思路

#這題會出現的狀況有4種
#長度爲1時候,最大就是他本是
#長度爲2時候,最大就是他的最大
#長度3的時候,爲他最小值及第三大
#長度4咱們就對他進行排序取倒數第三就能夠了

3.解題

class Solution:
    def thirdMax(self, nums: List[int]) -> int:
        nums_set = set(nums)
        if len(nums_set) == 1:  #第一種
            return nums[0]
        elif len(nums_set) ==3: #第二種
            return min(nums_set)
        elif len(nums_set) ==2: #第三種
            return max(nums_set)
        else:        #第四種
            nums_list = list(nums_set)
            nums_list.sort()
            return nums_list[-3]

至少是其餘數字兩倍的最大數

1題目描述

  • 在一個給定的數組nums中,老是存在一個最大元素 。leetcode

    查找數組中的最大元素是否至少是數組中每一個其餘數字的兩倍。get

    若是是,則返回最大元素的索引,不然返回-1。

    示例 1:

    輸入: nums = [3, 6, 1, 0]

輸出: 1 解釋: 6是最大的整數, 對於數組中的其餘整數, 6大於數組中其餘元素的兩倍。6的索引是1, 因此咱們返回1.

**示例 2:**

輸入: nums = [1, 2, 3, 4] 輸出: -1 解釋: 4沒有超過3的兩倍大, 因此咱們返回 -1.

### 2.解題

```python
解題思路:跟着題意走就行了,主要是利用列表的copy

3.解題

class Solution:
    def dominantIndex(self, nums: List[int]) -> int:
        if len(nums) >=2:
            nums_1= nums.copy()
            nums_1.sort()
            max_1 = nums_1[-1]
            max_2 = nums_1[-2]
            if max_1 >= 2*max_2:
                return nums.index(max_1)
            else:
                return -1
        else:
            return 0

```有更加好的思路,或者解題方法評論區留言謝謝``

相關文章
相關標籤/搜索