我的個人微信公衆號:Microstrong
微信公衆號ID:MicrostrongAI
微信公衆號介紹:Microstrong(小強)同學主要研究機器學習、深度學習、計算機視覺、智能對話系統相關內容,分享在學習過程中的讀書筆記!期待您的關注,歡迎一起學習交流進步!
知乎主頁:https://www.zhihu.com/people/MicrostrongAI/activities
題目描述
給定一個數組,數組裏的每一個單元都是字符串,請判斷如果數組中有重複的字符串返回False,否則返回True。
解題思路
(1)數組元素兩兩比較,時間複雜度
def is_duplicate_string(self, nums):
if len(nums) <= 0:
return True
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] == nums[j]:
return False
return True
(2)用空間複雜度換時間複雜度,時間複雜度
把數組裏的字符串放到HashMap或者dic中,時間複雜度O(n)。
def is_duplicate_string2(self, nums):
if len(nums) <= 0:
return True
dic = {}
for i in nums:
if i in dic.keys():
return False
else:
dic[i] = 1
return True