前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你知道IDE换主题?

你知道IDE换主题?

作者头像
公众号guangcity
发布2019-09-20 11:35:24
3600
发布2019-09-20 11:35:24
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

存在重复元素(17)


今日知图

上下左右移动

代码语言:javascript
复制
h 左
j 下
k 上
l 右

0.说在前面1.存在重复元素2.Pycharm美化3.作者的话


0.说在前面

本节核心:三种方法解决一道算法题,寻找最优方法!根据交流群的留言,在后文放出Pycharm的主题配置!!!一起嗨起来~~~

回顾

昨日研究了很久的知识图谱终于告一段落,后面会有更深入的知识图谱文章推出,根据我个人学习情况,加入机器学习或者深度学习算法,两者结合,绽放火花!

今日

公众号每周二与周五推出leetcode算法文章,刷的网址是:

https://leetcode-cn.com/explore/interview/card/tencent/

如果你也需要刷算法,我跟老表建立了一个专门算法群(可点击公众号右下角->联系我,进入算法交流群!),每周一与周四两天各刷一道,我公众号周二与周五各更新一篇,今天周六,本来昨日发文,由于昨天将我的知识图谱研究发出去,所以暂缓了一天!

爬虫

由于师弟与师妹需要爬虫知乎取数据,所以我估计会抽空研究知乎爬虫,到时候采用scrapy爬虫,scrapy爬虫的小伙伴们一起来期待!!!

下面我们来一起进入本节文章内容!!!

1.存在重复元素

问题

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

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

示例 1:

代码语言:javascript
复制
输入: [1,2,3,1]
输出: true

示例 2:

代码语言:javascript
复制
输入: [1,2,3,4]
输出: false

示例 3:

代码语言:javascript
复制
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true

方法一

思路

set去重

然后获得nums去重后的数组与原始数组长度相比较,如果相等,则没有重复元素,返回false,否则不等,有重复元素,返回true。

实现

代码语言:javascript
复制
return len(nums) != len(set(nums))

分析

时间与空间复杂度均为O(1)

方法二

思路

字典处理

定义一个字典,遍历给定的list(也就是nums),并向字典中添加list元素,通过查找字典中是否存在当前list的元素来判别给定的list是否有重复元素!

实现

实现一:

代码语言:javascript
复制
class Solution:
    def containsDuplicate(self, nums):
        nums_dict = {}
        for i in nums:
            if i in nums_dict:
                return True
            nums_dict[i] = 1
        return False

实现二:

代码语言:javascript
复制
class Solution:
    def containsDuplicate(self, nums):
        nums_dict = {}
        for i in range(len(nums)):
            if nums[i] in nums_dict:
                return True
            nums_dict[nums[i]] = 1
        return False

分析

当前这个方法好好分析一下时间与空间复杂度,这里定义了一个字典,空间复杂度为O(n),时间复杂度为O(n)

关键点:当中涉及了字典查找元素,时间复杂度O(1),外层循环一次,时间复杂度O(n),总共为O(n)

方法三

列表处理

思路

定义一个列表,遍历给定的list(也就是nums)),并向新定义的list中添加nums中的元素,通过查找新定义list中是否存在当前list的元素来判别给定的list是否有重复元素!

实现

代码语言:javascript
复制
class Solution:
    def containsDuplicate(self, nums):
        nums_list = []
        for i in nums:
            if i in nums_list:
                return True
            nums_list.append(i)
        return False

分析

上面这个时间复杂度为O(n^2),空间复杂度为O(n)

空间复杂度好理解,时间复杂度大家看到的只是一个for循环,为何O(n^2)

原因在于里面list查找时间复杂度为O(n),外层还有一个O(n)的训话,自然就为O(n^2)了,所以leetcode通不过,超时~~

总结

上面介绍了三种方法解决这道简单题!特别是后面的两个方法,字典与列表对比分析,从时间复杂度来研究其优劣!

2.Pycharm美化

下载主题 http://color-themes.com/?view=index

上述是一个主题推荐网址,选择自己喜欢的配色,下载后打开 Pycharm 选择File -> 选择 Import Settings -> 选择 xxxx.jar (你下载的jar包)导入,导入完成后,重启PyCharm即可!

更多Pycharm内容,后面一起分享,这次先来换皮肤,哈哈~~~具体需求,请留言!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存在重复元素(17)
    • 0.说在前面
      • 1.存在重复元素
        • 2.Pycharm美化
        相关产品与服务
        灰盒安全测试
        腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档