【每日一题】【LeetCode】【第九天】存在重复元素

news2024/11/27 3:58:30

解决之路= =

题目描述

在这里插入图片描述

测试案例(部分)

在这里插入图片描述

第一次

关键就是看是否有重复元素,暴力解法就是双循环,然后有相同元素就返回True,否则就等循环结束,返回False

但是自己想到了另一个只需要一个循环的解法。用一个循环来确定一个元素,然后通过切片,在后面的元素中查找是否存在这个元素。如果存在,那就是重复了,返回True;反之,就循环结束,返回False

class Solution(object):
    def containsDuplicate(self, nums):
        for k, v in enumerate(nums):
            if v in nums[k + 1:]:
                return True
        return False

测试正确,提交,通过了,不过。。。怎么耗时这么长?

在这里插入图片描述

第二次

难道还是用nb的双指针?试了试,感觉是不行的。如果left和right两头按比大小的规则左右移动,就可能会导致漏相同的元素。

感觉还是要延续第一次代码的思路,第一次是用元素往后面的所有元素中找是否相同,这样比较费时间。在试双指针的时候,自己想到了到底是排序过后再用还是不用排序直接用,那么,结合第一次的思路,我先将输入序列排序,然后每次循环选中的元素,和下一位元素进行对比,如果相同就返回True,如果整个循环结束,都没有相同,就返回False。这样,就不用in来判断子列表中是否有元素相同了。

class Solution(object):
    def containsDuplicate(self, nums):
        nums.sort()
        for i in range(len(nums) - 1):
            if nums[i] == nums[i + 1]:
                return True
        return False

测试正确,提交,通过了,时间确实降下来了。

在这里插入图片描述

第三次

感觉画的时间可能还能降,翻一翻万能的评论区。

哎哟,我傻了,看到了一个C++老哥用集合set来解决。对啊,用集合的去重思路来解决确实是一种思路。不多说了,立马实现一下试试。

class Solution(object):
    def containsDuplicate(self, nums):
        nums_set = set(nums)
        if len(nums_set) != len(nums):
            return True
        else:
            return False

测试正确,提交,通过了,真的时间更短。

在这里插入图片描述

闲话

后续又看到一个老哥,把我写的这个逻辑简化成了一行代码。

在这里插入图片描述
牛,但是提交测试了一下,画的时间和自己第三次的代码一样。

还看到一只“派蒙”写了和我第二次一样的代码逻辑,虽然是用java写的,但这个if(nums[i]==nums[i+1])一看就和我不谋而合,哈哈哈哈,有缘呀。

在这里插入图片描述

附件

昨天本来剩一半单词打算床上背的,结果洗漱完就忘了。。。
今天补上

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++11 简化 “策略模式” 的一种思路

策略模式是一种定义一系列算法的模式,从概念上看,所有这些算法完成的都是相同接口的工作(只是实现不同),它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法的类之间的耦合。实践中只要在分析过…

开发者工具中performance面板解析

目录总览设置面板网络性能总览图火焰图:耗费的时间相关信息总览 如图,主要分为以下4个方面 设置面板 1, 不刷新页面进行录制 2,刷新页面进行录制 3,删除性能展示页面 4,上传本地的性能页面 5&#xff0c…

若依mybatis升级mybatis-plus,其他也适用

若依mybatis升级mybatis-plus,其他也适用 本文档记录若依mybatis升级plus,其他也类似 文章目录若依mybatis升级mybatis-plus,其他也适用第一步 修改ruoyi-common的pom.xml第二步 修改ruoyi-admin的application.yml第三步 修改ruoyi-framework的MyBatisConfig.java开始测试1. 修…

一、计算机系统概论

文章目录一、计算机系统简介1.计算机软硬件概念2.计算机系统的层次结构(1)现代计算机(2)发展(3)软硬件分布3.计算机组成和计算机体系结构二、计算机的基本组成1.冯诺依曼计算器2.计算机硬件框图3.计算机工作…

android架构拆分方案-编译相关方案与技术

接上文https://blog.csdn.net/dongyi1988/article/details/128617738直接拆分那么在代码和做包过程中,需要用到分仓,super.img、boot、OTA升级包的拆分与组合,vendor与system相关依赖处理,开机验证链还必须给镜像签名。代码管理定…

VisualODX——ODX数据自动转换工具

在创建ODX数据库的过程中,我们需要录入大量的数据以及应对多种数据格式。这不仅费时费力,而且还需要很高的人力成本,并且其错误率也高,从而导致了效率低下、开发速度缓慢。基于多年的汽车行业诊断经验,Softing开发了Vi…

基于微信小程序的课程分享平台小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

xv6-lab3: page table

文章目录1.speed up system call2. print page3. Detecting which pages have been accessedwhere is page table?function of page table?how to get arguments from user to kernel? – reference:https://stackoverflow.com/questions/46870509/how-to-pass-a-value-into…

风速记录仪大屏幕液晶显示全中文操作菜单操作简单

风速记录仪功能特点◆本机体积小巧美观,大屏幕液晶显示,全中文操作菜单,操作简单,性能可靠,记录间隔可根据要求从1分至24小时任意设置。(但由于存储器空间有限,设置后也可随时查看存储信息&…

【阶段三】Python机器学习09篇:机器学习项目实战:决策树回归模型

本篇的思维导图: 项目背景 决策树除了能进行分类分析,还能进行回归分析,即预测连续变量,此时的决策树称为回归决策树。回归问题是一类预测连续值的问题,而能满足这样要求的数学模型称作回归模型,本项目应用决策树回归模型进行探索新冠疫情、原材料、人工、物流等因素对…

generalized focal loss之quality focal loss(附代码)

参见paper 其中包含有Quality Focal Loss 和 Distribution Focal Loss。 先来说一下Quality Focal Loss, 在这之前,先要了解一下Focal Loss, 在这篇文章里有写过。 它主要是解决class imbalance,同时降低容易分类的weight,使训练更集中到难…

集成开发工具IDEA导入新项目,update index时间过程

集成开发工具IDEA导入新项目,update index时间过程,一般这种场景出现在: 1.继承开发工具比较新(使用了优化的索引算法,这种算法一般是前期编译比较慢,一旦编译完,存入缓存,后期搜索就…

C语言经典100例(008,009,010)

题目&#xff1a;输出9*9口诀。 程序分析&#xff1a;分行与列考虑&#xff0c;共 9 行 9 列&#xff0c;i 控制行&#xff0c;j 控制列。 程序源代码&#xff1a; #include<stdio.h> int main() {int i,j,result;printf("\n");for (i1;i<10;i){for(j1;j…

fork()||fork(),循环fork()与\n

fork()||fork()输出几个A&#xff1f;父进程左边的fork()产生一个子进程&#xff08;1&#xff09;&#xff0c;父进程fork返回值>0,||不执行右边。子进程&#xff08;1&#xff09;中fork()返回0&#xff0c;执行||右边的fork()产生第二个子进程&#xff08;2&#xff09;到…

电脑蓝屏怎么解决?一键快速解决蓝屏问题

电脑蓝屏也是一个经常出现的情况&#xff0c;让人十分头疼。蓝屏的原因有很多&#xff0c;但大多数是由内存条、硬盘或散热系统造成的。电脑蓝屏怎么解决&#xff1f;遇到这个问题&#xff0c;可以从下面四个方法来入手&#xff0c;一键快速解决电脑蓝屏问题&#xff01; 操作环…

Android 深入系统完全讲解(9)

3 JNI 调试 开发 android 应用&#xff0c;主要围绕着 java 语言&#xff0c;可是&#xff0c;如果我们需要追求性能&#xff0c;或者需要调用之前我们已经写好的 c c so 库的时候&#xff0c;或者和硬件打交道的时候&#xff0c;那么我们就会接触到 JNI&#xff08;java nati…

Cadence:层次化电路+信号线束

之前用Altium Designer做工程&#xff0c;偏向于使用层次化电路信号线束的方式画图&#xff0c;类似下图&#xff1a; 现在工作需求使用Cadence&#xff0c;继续采用层次化电路设计信号线束的方式&#xff0c;总结如下&#xff1a; 打开OrCAD Capture&#xff0c;创建一个工程…

libtorch在windows使用(c++项目中部署.pt)

狗头pytorch官网教程&#xff1a;Loading a TorchScript Model in C — PyTorch Tutorials 1.13.1cu117 documentation首先我已经有了个model.pt&#xff0c;就不需要做前面序列化为文件之类的操作&#xff0c;直接从在C中加载开始最后成功的版本&#xff1a;example-app.cpp 内…

计算机CCF-C的SCI期刊,值得投稿吗? - 易智编译EaseEditing

ccf应该说是比较权威的&#xff0c;哪怕是C类。 目前不少SCI期刊开始在投稿时&#xff0c;就建议非英语母语作者进行SCI润色后再投稿。 甚至有的杂志还将润色后的English editing certificate作为硬性上传文件指标&#xff0c;列在投稿系统中。 英语润色也是为了避免学术上的…

超优化文章记录之NeurIPS2022_Gradient Descent: The Ultimate Optimizer

作者&#xff1a;Kartik Chandra 单位&#xff1a;MIT 官网链接&#xff1a;Github 下面将首先以简单翻译文章重要内容&#xff0c;穿插一些讲解&#xff0c;并进行简单的复现实验。之后总结各种资料&#xff0c;如review意见等。最后讲解代码&#xff0c;研究具体实现。 文章…