[leetcode]python3 演算法攻略-只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
方案一:去重求和,乘2減原
def singleNumber(nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(set(nums)) * 2 - sum(nums)
方案二:根據 異或運演算法則, 交換律;0 與 任意數x 異或後都是x
def singleNumber(nums): """ :type nums: List[int] :rtype: int """ res = 0 for i in nums: res ^= i return res
相關推薦
[leetcode]python3 演算法攻略-只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。方案一:去重求和,乘2減原def singleNumber(nums): """ :type nums: List[int] :rtype: int
LeetCode--初級演算法--陣列篇-只出現一次的數字
題目 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2:
[leetcode]python3 演算法攻略-加一
給定一個非負整數組成的非空陣列,在該數的基礎上加一,返回一個新的陣列。最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。方案一:利用數學公式求原陣列的int形式def plusOne(digits): ""
leetcode【陣列】 2 只出現一次的數字 -python3
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,
[leetcode]python3 演算法攻略-二叉搜尋樹中第K小的元素
給定一個二叉搜尋樹,編寫一個函式 kthSmallest 來查詢其中第 k 個最小的元素。 說明: 你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。 方案一:中序排序後,返回第K-1個值 class Solution(object): def k
[leetcode]python3 演算法攻略-驗證二叉搜尋樹
給定一個二叉樹,判斷其是否是一個有效的二叉搜尋樹。一個二叉搜尋樹具有如下特徵:節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。方案一:構建一個輔助函式,把當前節點的值,傳遞給子節點,在子節點中進行比較class
[leetcode]python3 演算法攻略-爬樓梯
假設你正在爬樓梯。需要 n 步你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 方案一:每一步都是前兩步和前一步的和 class Solution(object): def climbSt
[leetcode]python3 演算法攻略-反轉整數
給定一個 32 位有符號整數,將整數中的數字進行反轉。方案一:匿名函式s用於確定x的正負性。class Solution: def reverse(self, x): """ :type x: int :rtype: i
[leetcode]python3 演算法攻略-打家劫舍
你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的
[leetcode]python3 演算法攻略-合併兩個有序陣列
給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 n
[leetcode]python3 演算法攻略-有效的字母異位詞
給定兩個字串 s 和 t ,編寫一個函式來判斷 t 是否是 s 的一個字母異位詞。方案一:s.count()比較各元素的個數class Solution: def isAnagram(self, s, t): """ :type s:
leetcode 136 Single Number(只出現一次的數字) python3 多種思路(建立字典/排序/巧用異或)
class Solution: def singleNumber(self, nums): """ :type nums: List[int] :
[leetcode]python3 演算法攻略-有效的括號
給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效。 有效字串需滿足: 左括號必須用相同型別的右括號閉合。 左括號必須以正確的順序閉合。 注意空字串可被認為是有效字串。 class Solution(object):
[leetcode]python3 演算法攻略-旋轉影象
給定一個 n × n 的二維矩陣表示一個影象。將影象順時針旋轉 90 度。方案一:先按X軸對稱旋轉, 再用zip()解壓,最後用list重組。class Solution: def rotate(self, matrix): """ :
[leetcode]python3 演算法攻略-兩個陣列的交集 II
給定兩個陣列,寫一個方法來計算它們的交集。方案一:利用collections.Counter的&運算,一步到位,找到 最小次數 的相同元素。def intersect(nums1, nums2): """ :type nums1: List[int]
[leetcode]python3 演算法攻略-兩數之和
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。方案一:利用字典,儲存檢查過的元素及其索引。def twoSum(nums, target): """ :type nums: List[
Leetcode刷題筆記python----只出現一次的數字
只出現一次的數字 題目 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2:
leetcode刷題--基礎陣列--只出現一次的數字(C)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,
經典演算法——陣列中只出現一次的數字
題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。 class Solution { public: void FindNumsAp
LeetCode 136 Single Number(只出現一次的數字)
翻譯 給定一個整型陣列,除了某個元素外其餘元素均出現兩次。找出這個只出現一次的元素。 備註: 你的演算法應該是一個線性時間複雜度。你可以不用額外空間來實現它嗎? 原文 Given a