zoukankan      html  css  js  c++  java
  • Leetcode-探索 | 存在重复

    给定一个整数数组,判断是否存在重复元素。

    如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

    示例 1:

    输入: [1,2,3,1]
    输出: true

    示例 2:

    输入: [1,2,3,4]
    输出: false

    示例 3:

    输入: [1,1,1,3,3,4,3,2,4,2]
    输出: true

    ——————————————————————————————————————————————

    用Python的list.cout()方法暴力试一下:TOL

     1 class Solution(object):
     2     def containsDuplicate(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: bool
     6         """
     7         list_len = len(nums)
     8         for i in range(0, list_len):
     9             if nums.count(nums[i]) > 1:
    10                 return True
    11         
    12         return False

    然后看到别人的博客里有手写循环暴力的,又试了一下:TOL

     1 class Solution(object):
     2     def containsDuplicate(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: bool
     6         """
     7         list_len = len(nums)
     8         for i in range(0, list_len):
     9             for j in range(i+1, list_len):
    10                 if nums[i] == nums[j]:
    11                     return True
    12         
    13         return False

     然后偷看了别人的代码,发现可以先排序,这样时间复杂度反而下降,思路非常顺畅:AC

     1 class Solution(object):
     2     def containsDuplicate(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: bool
     6         """
     7         array_len = len(nums)
     8         nums.sort()
     9         for i in range(0, array_len-1):
    10             if nums[i] == nums[i+1]:
    11                 return True
    12         
    13         return False

    想不到更好的方法了……

    这题对我来说挺有意思,水尽山穷疑无路 -> 柳暗花明的感觉,再想想应该会有其他的启发。

  • 相关阅读:
    TypeScript--变量
    TypeScript--Hello
    前端跨域的方式
    内存泄漏与垃圾回收机制
    前端拷贝
    React生命周期16版本
    Redux三大原则
    IE6常见CSS解析Bug及hack
    Redux的应用
    vue-router-基础
  • 原文地址:https://www.cnblogs.com/qinziang/p/9201695.html
Copyright © 2011-2022 走看看