前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 存在重复 - LeetCode

Swift 存在重复 - LeetCode

作者头像
韦弦zhy
发布2018-09-11 12:48:42
7460
发布2018-09-11 12:48:42
举报
文章被收录于专栏:韦弦的偶尔分享
存在重复

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

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

这个算是比较容易的。(判断的方法依据就是:我不用百度会做?)

-1)使用Set

代码如下:

代码语言:javascript
复制
class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
        let set = Set(nums)
        return set.count != nums.count
    }
}

执行时间:52ms

-2) 排序判断前后有没有相等的元素(时间多少取决于排序算法,我这直接用的Swift提供的sorted

代码如下:

代码语言:javascript
复制
class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {       
         if nums.isEmpty || nums.count == 1 {
             return false
         }
        
         let nums = nums.sorted()
        
         for i in 0..<nums.count - 1 {
             if nums[i] == nums[i + 1] {
                 return true
             }
         }
         return false
    }
}

执行用时:96 ms

-3)使用哈希表(Dictionary)

代码如下:

代码语言:javascript
复制
class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
         for i in 0..<nums.count {
            if let _ = dic[nums[i]] {
                return true
            }
            dic[nums[i]] = i
        }
        return false
    }
}

执行用时:68 ms

开始用Swift学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记吧。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存在重复
    • -1)使用Set
      • -2) 排序判断前后有没有相等的元素(时间多少取决于排序算法,我这直接用的Swift提供的sorted)
        • -3)使用哈希表(Dictionary)
          • 开始用Swift学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记吧。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档