Leetcode刷題筆記python----只出現一次的數字
只出現一次的數字
題目
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:
你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
示例 1:
輸入: [2,2,1] 輸出: 1 示例 2:
輸入: [4,1,2,1,2] 輸出: 4
解答
思路:
- 一開始利用set(),找到所有元素,再遍歷找到唯一元素,時間太慢(存在遍歷)
- 重新讀題
- 加總所有元素*2-加總nums得到結果
程式碼:
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(set(nums))*2-sum(nums)
結果:99%
相關推薦
Leetcode刷題筆記python----只出現一次的數字
只出現一次的數字 題目 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2:
leetcode刷題--基礎陣列--只出現一次的數字(C)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,
LeetCode演算法題136:只出現一次的數字解析
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例1: 輸入: [2,2,1] 輸出: 1 示例2: 輸入: [4,1,2,1,2] 輸出: 4
【LeetCode 中等題】64-只出現一次的數字II
題目描述:給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,3,2] 輸出: 3 示例 2
Leetcode刷題筆記python---二進位制求和
二進位制求和 題目 給定兩個二進位制字串,返回他們的和(用二進位制表示)。 輸入為非空字串且只包含數字 1 和 0。 示例 1: 輸入: a = “11”, b = “1” 輸出: “100” 示例 2: 輸入: a = “1010”, b = “1011” 輸出:
Leetcode刷題筆記python---相對名次
相對名次 題目 給出 N 名運動員的成績,找出他們的相對名次並授予前三名對應的獎牌。前三名運動員將會被分別授予 “金牌”,“銀牌” 和“ 銅牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”)。 (注:分數越高的選手,排名越靠前。)
Leetcode刷題筆記python---贖金信
贖金信 題目 給定一個贖金信 (ransom) 字串和一個雜誌(magazine)字串,判斷第一個字串ransom能不能由第二個字串magazines裡面的字元構成。如果可以構成,返回 true ;否則返回 false。 (題目說明:為了不暴露贖金信字跡,要從雜誌上搜索各個需要的
Leetcode刷題筆記python---4的冪
4的冪 題目 給定一個整數 (32 位有符號整數),請編寫一個函式來判斷它是否是 4 的冪次方。 示例 1: 輸入: 16 輸出: true 示例 2: 輸入: 5 輸出: false 解答 思路: while 比較 程式碼:
Leetcode刷題筆記python---位1的個數
位1的個數 題目 編寫一個函式,輸入是一個無符號整數,返回其二進位制表示式中數字位數為 ‘1’ 的個數(也被稱為漢明重量)。 示例 : 輸入: 11 輸出: 3 解釋: 整數 11 的二進位制表示為 00000000000000000000000000001011 示例
Leetcode刷題筆記python---買賣股票的最佳時機
買賣股票的最佳時機 題目 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 示例 1: 輸入: [7,1,5,3,6,4
Leetcode刷題筆記python唯一摩爾斯密碼詞
唯一摩爾斯密碼詞 #題目 國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應於一個由一系列點和短線組成的字串, 比如: “a” 對應 “.-”, “b” 對應 “-…”, “c” 對應 “-.-.”, 等等。 為了方便,所有26個英文字母對應摩爾斯密碼錶如下:
Leetcode刷題筆記python-----反轉字串中的單詞3
反轉字串中的單詞3 題目 給定一個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。 示例 1: 輸入: “Let’s take LeetCode contest” 輸出: “s’teL ekat edoCteeL tsetnoc” 注
Leetcode刷題筆記python------寫字串需要的行數
寫字串需要的行數 題目 我們要把給定的字串 S 從左到右寫到每一行上,每一行的最大寬度為100個單位,如果我們在寫某個字母的時候會使這行超過了100 個單位,那麼我們應該把這個字母寫到下一行。我們給定了一個數組 widths ,這個陣列 widths[0] 代
Leetcode刷題筆記python-----分糖果
分糖果 題目 給定一個偶數長度的陣列,其中不同的數字代表著不同種類的糖果,每一個數字代表一個糖果。你需要把這些糖果平均分給一個弟弟和一個妹妹。返回妹妹可以獲得的最大糖果的種類數。 示例 1: 輸入: candies = [1,1,2,2,3,3] 輸出: 3 解
Leetcode刷題筆記python-----下一個更大的元素1
下一個更大的元素 題目 給定兩個沒有重複元素的陣列 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下一個比其大的值。 nums1 中數字 x 的下一個更大元素是指 x 在 nums2 中對應
Leetcode刷題筆記python----棒球比賽
棒球比賽 題目 你現在是棒球比賽記錄員。 給定一個字串列表,每個字串可以是以下四種類型之一: 1.整數(一輪的得分):直接表示您在本輪中獲得的積分數。 2. “+”(一輪的得分):表示本輪獲得的得分是前兩輪有效 回合得分的總和。 3. “D”(一輪的得分):表示
Leetcode刷題筆記python----求眾數
求眾數 題目 給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。 你可以假設陣列是非空的,並且給定的陣列總是存在眾數。 示例 1: 輸入: [3,2,3] 輸出: 3 示例 2: 輸入: [2,2,1,1,1,2,
Leetcode刷題筆記python---移動零
移動零 題目 給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。 示例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 必須在原陣列上操作,不能拷貝額外的陣列。 儘量減少操作次數。 解答
Leetcode刷題筆記python---移除元素
移除元素 題目 給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。 不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮陣列中超出
Leetcode刷題筆記python---檢測大寫字母
檢測大寫字母 題目 給定一個單詞,你需要判斷單詞的大寫使用是否正確。 我們定義,在以下情況時,單詞的大寫用法是正確的: 全部字母都是大寫,比如"USA"。 單詞中所有字母都不是大寫,比如"leetcode"。 如果單詞不只含有一個字母,只有首字母大寫, 比如 “