【算法-面試題】給定一個數組,數組裏的每一個單元都是字符串,請判斷如果數組中有重複的字符串返回False,否則返回True。

我的個人微信公衆號:Microstrong

微信公衆號ID:MicrostrongAI

微信公衆號介紹:Microstrong(小強)同學主要研究機器學習、深度學習、計算機視覺、智能對話系統相關內容,分享在學習過程中的讀書筆記!期待您的關注,歡迎一起學習交流進步!

知乎主頁:https://www.zhihu.com/people/MicrostrongAI/activities

Github:https://github.com/Microstrong0305

個人博客:https://blog.csdn.net/program_developer

題目描述

給定一個數組,數組裏的每一個單元都是字符串,請判斷如果數組中有重複的字符串返回False,否則返回True。

 

解題思路

 (1)數組元素兩兩比較,時間複雜度O(n^{2})

    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)用空間複雜度換時間複雜度,時間複雜度O(n)

把數組裏的字符串放到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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章