LeetCode初級演算法--陣列01:只出現一次的數字
搜索微信公眾號:'AI-ming3526'或者'計算機視覺這件小事' 獲取更多演算法、機器學習干貨
csdn:https://blog.csdn.net/baidu_31657889/
csdn:https://blog.csdn.net/abcgkj/
github:https://github.com/aimi-cn/AILearners
一、引子
這是由LeetCode官方推出的的經典面試題目清單~
這個模塊對應的是探索的初級演算法~旨在幫助入門演算法,我們第一遍刷的是leetcoda推薦的題目,
查看完整的劍指Offer演算法題決議請點擊github鏈接:
github地址
二、題目
給定一個非空整數陣列,除了某個元素只出現一次以外,其余每個元素均出現兩次,找出那個只出現了一次的元素,
說明:
你的演算法應該具有線性時間復雜度, 你可以不使用額外空間來實作嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例 2:
輸入: [4,1,2,1,2]
輸出: 4
1、思路
自己想的思路,很簡單,創建一個字典,回圈整個陣列,如果改值出現不止一次,把這個數從字典中洗掉,否則把這個數存在字典中,最后剩下的那個數就是我們想要的值,
2、編程實作
python
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# for i in nums:
# if nums.count(i)==1:
# return i
s = {}
for i in nums:
if i in s.keys():
s.pop(i)
else:
s[i]=1
return list(s.keys())[0]
AIMI-CN AI學習交流群【1015286623】 獲取更多AI資料
分享技術,樂享生活:我們的公眾號計算機視覺這件小事每周推送“AI”系列資訊類文章,歡迎您的關注!
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/69688.html
標籤:其他
上一篇:論文筆記: LSTD A Low-Shot Transfer Detector for Object Detection
