摘要:描述給定一個整數數組,判斷是否存在重復元素。如果任何值在數組中出現至少兩次,函數應該返回。因為取值到倒數第二位就可以對比完,因為使用的是樓下有大神回復了,看到一種比較簡答的優秀解法對數據去重,如果長度變化,說明存在重復元素。
描述
給定一個整數數組,判斷是否存在重復元素。
如果任何值在數組中出現至少兩次,函數應該返回 true。如果每個元素都不相同,則返回 false。
1.自己的方法,雙循環,但是題目提示超過時間限制了
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ if len(nums)==0: return False else: for i in range(len(nums)): for j in range(len(nums)): if nums[i]==nums[j] and i!=j: return True return False
2.后面又想到一種方法,先排序,對比前后兩個元素的值,如果存在相當就返回True。len(nums)-1因為取值i到倒數第二位就可以對比完,因為if 使用的是nums[i+1]
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ nums.sort() if len(nums) == (1 or 0): return False else: for i in range(len(nums)-1) : if nums[i] == nums[i+1]: return True return False
3.樓下有大神回復了,看到一種比較簡答的優秀解法:對數據去重,如果長度變化,說明存在重復元素。
class Solution: def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ return True if len(nums) != len(set(nums)) else False
4.樓下大神的字典解法:也很優秀,如果字典不存在數組的值,就dict[i] =i
class Solution(object): def containsDuplicate(self, nums): if len(nums) == 0: return False; else: dict = {} for i in nums: if dict.get(i) is not None: return True else: dict[i] = i return False
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41519.html
摘要:解決冪等問題的三部曲,也是作者的思考框架。這是解決冪等問題的第二部曲列出并減少副作用的分析維度。所以在并發執行的維度,將并發重復執行變成串行重復執行是最好的冪等解決方案。 綱要 文章目的:本文旨在提煉一套分布式冪等問題的思考框架,而非解決某個具體的分布式冪等問題。在這個框架體系內,會有一些方案舉例說明。文章目標:希望讀者能通過這套思考框架設計出符合自己業務的完備的冪等解決方案。文章內容...
摘要:題目描述存在重復給定一個整數數組,判斷是否存在重復元素。如果任何值在數組中出現至少兩次,函數返回。示例輸入輸出示例輸入輸出示例輸入輸出思路排序,遍歷比較實現 題目描述 存在重復給定一個整數數組,判斷是否存在重復元素。 如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。 示例 1: 輸入: [1,2,3,1] 輸出: true 示例 2:...
閱讀 2106·2021-11-24 09:39
閱讀 1495·2019-08-30 15:44
閱讀 1946·2019-08-29 17:06
閱讀 3393·2019-08-29 16:32
閱讀 3543·2019-08-29 16:26
閱讀 2654·2019-08-29 15:35
閱讀 3026·2019-08-29 12:50
閱讀 1636·2019-08-29 11:15