栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day1-力扣数组练习题之217存在重复元素

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day1-力扣数组练习题之217存在重复元素

题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
示例1:

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

示例2:

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

示例3:

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

分析:这题其实比较简单,拿到手的第一反应是暴力循环解决,但提示超时了(哈哈哈哈哈哈哈哈),还有一个问题是刚开始用c写,但由于太久没有用过C,以至于各种语法格式都不记得了,写几句还要百度查一下语法规范。
然后思考了很久,尝试着将数组中多余的剔除,比较长度即可看出有无重复元素。还是python写起来比较顺手

class Solution(object):
    def containsDuplicate(self, nums):
        new_nums = []
        for i in nums:
            if i not in new_nums:
                new_nums.append(i)
        return False if len(nums) == len(new_nums) else True

但最终提交后

执行用时:8960 ms, 在所有 Python 提交中击败了5.02%的用户
内存消耗:18.8 MB, 在所有 Python 提交中击败了90.73%的用户
通过测试用例:70 / 70

哈哈哈哈哈哈哈哈,我真的不擅长考虑时间复杂度T-T。
然后又想到了set

class Solution(object):
    def containsDuplicate(self, nums):
        return len(set(nums)) != len(nums)

然而。。。

执行用时:48 ms, 在所有 Python 提交中击败了53.86%的用户
内存消耗:20.7 MB, 在所有 Python 提交中击败了41.45%的用户
通过测试用例:70 / 70

呜呜呜呜呜呜呜,还是不太理想。评论区大多使用javac++,但我又不会,害。。。。。
总结:虽然是一题很简单的题,但也花了不少时间。不要每次拿到问题就是几个循环暴力解决,多动动脑筋。刷力扣的第一天,已经开始担心找不到工作了,继续加油嗷~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号