力扣随笔之寻找重复数(中等287)

思路1:暴力解法,根据要求不修改数组且只用常量级O(1)的额外空间,我们写两层嵌套循环,寻找重复的数;可以解决部分问题,但会超出时间限制无论Java还是C++;

Java实现:

class Solution {
    public int findDuplicate(int[] nums) {
        for(int i = 0;i < nums.length - 1;i++){
            for(int j = i+1;j < nums.length;j++){
                if(nums[i] == nums[j]){
                    return nums[i];
                }
            }
        }
        return -1;
    }
}

思路2:根据快慢指针来解决,由于nums数组中有且仅有一个重复的整数,那么可以将nums数组链表化,因为有“一个”重复的整数,所会有有且仅有“一个环”产生,根据快慢指针找到环的入口,即可 

        如图slow一次走一步,fast一次走两步,得到如下数学关系

定义指针p1 从slow开始走,p2从0开始走,当p2与p1相遇,相遇那个点就是环的入口

Java实现:

class Solution {
    public int findDuplicate(int[] nums) {
        int slow = 0;
        int fast = 0;
        slow = nums[slow];//slow一次走一步
        fast = nums[nums[fast]];//fast一次走两步
        while(slow != fast){//当slow没遇到fast
            slow = nums[slow];
            fast = nums[nums[fast]];
        }//slow遇到fast
        int p1 = slow;
        int p2 = 0;
        while(p1 != p2){
            p1 = nums[p1];
            p2 = nums[p2];
        }
        return p1;//最后return p1或者p2皆可
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第四节:Vben Admin登录对接后端getUserInfo接口

系列文章目录 第一节&#xff1a;Vben Admin介绍和初次运行 第二节&#xff1a;Vben Admin 登录逻辑梳理和对接后端准备 第三节&#xff1a;Vben Admin登录对接后端login接口 第四节&#xff1a;Vben Admin登录对接后端getUserInfo接口 文章目录 系列文章目录前言一、回顾Vben…

Elastic Search的RestFul API入门:使用SQL查询ES

确实,Elasticsearch 中也支持 SQL 语法,但我们通常使用 DSL 进行 API 操作,很少有人用 SQL 进行 Elasticsearch 的操作。然而,如果你刚开始学习 Elasticsearch,这一节的内容可以帮助你更快地理解 Elasticsearch(前提是你已经熟悉 SQL)。通过 SQL 查询,你可以进行一些简…

HTTPS对HTTP的加密过程

1、HTTPS是在HTTP的基础上&#xff0c;引入了一个加密层&#xff08;SSL&#xff09;&#xff0c;对数据进行保护&#xff0c;HTTP 是明文传输的&#xff08;不安全&#xff0c;很可能会被运营商通过referer劫持&#xff0c;或者黑客通过修改链接来窃数据&#xff09; 2、加密…

数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS

&#x1f680;数字人的未来&#xff1a;数字人对话系统 Linly-Talker 克隆语音 GPT-SoVITS https://github.com/Kedreamix/Linly-Talker 2023.12 更新 &#x1f4c6; 用户可以上传任意图片进行对话 2024.01 更新 &#x1f4c6; 令人兴奋的消息&#xff01;我现在已经将强…

【数据结构】图——最短路径

最短路径问题&#xff1a;从在带权有向图G中的某一顶点出发&#xff0c;找出一条通往另一顶点的最短路径&#xff0c;最短也就是沿路径各边的权值总和达到最小。 最短路径分为图中单源路径和多源路径。 本文会介绍Dijkstra和Bellman-Ford解决单源路径的问题 Floyd-Warshall解…

实操 - openstack的自动化部署

一 、使用openstack自带的工具packstack部署allinone模式 此模式将所有的服务装在一个虚机中&#xff0c;用来测试 1.克隆一台虚拟机&#xff08;配置好七项&#xff09;virt-clone 2.下载openstack-packstack之前删除mariadb所有相关内容(可选项) #rpm -qa | grep mariad…

二叉树与堆

目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树&#xff1a; 2.3 特殊的二叉树&#xff1a; 2.4 二叉树的性质 2.5 二叉树的…

kafka生产者

1.原理 2.普通异步发送 引入pom&#xff1a; <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.0.0</version></dependency><dependency><g…

【信息系统项目管理师】--【信息技术发展】--【现代化创新发展】--【大数据】

文章目录 第二章 信息技术发展2.2 新一代信息技术及应用2.2.3 大数据1.技术基础2.关键技术3.应用和发展 第二章 信息技术发展 信息技术是在信息科学的基本原理和方法下&#xff0c;获取信息、处理信息、传输信息和使用信息的应用技术总称。从信息技术的发展过程来看&#xff0c…

python常用文件操作

1.文件夹创建&#xff0c;删除&#xff0c;重命名&#xff0c;路径连接&#xff0c;文件打开&#xff0c;关闭读写 #文件夹创建 path ./test newpath "./new" #判断文件夹是否存在 ret os.path.exists(path) if ret:pass else:#创建文件夹os.mkdir(path)#文件夹重…

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛&#xff0c;彻底暴露了CF菜菜的本质&#xff0c;F题没思路&#xff0c;G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…

关系型数据库事务的四性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)

关系型数据库事务的四性ACID:原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09; 事务的四性通常指的是数据库事务的ACID属性&#xff0c;包括原子性&…

Find My小风扇|苹果Find My技术与小风扇结合,智能防丢,全球定位

电风扇在我们的日常生活中也是经常会使用到的家电产品&#xff0c;尤其是在炎炎的夏日&#xff0c;风扇能给我们吹来清凉的凉风&#xff0c;如今随身携带的小风扇成为人们出门的必备物品&#xff0c;由于体积小方便经常会被人遗忘在某个地方导致丢失。 在智能化加持下&#x…

官方必读!脚本附赠技术教程系列:麒麟天御安全域管平台V4.0.0服务端云底座部署(2)

1.部署须知 1.1.部署说明 执行本部署操作文档&#xff0c;请用户知悉如下内容后再操作&#xff1a; 仅限用于部署麒麟容器云底座&#xff0c;部署前请准备好相应的物料&#xff1b;部署前请提前准备好集群LICENSE&#xff0c;用于激活容器云底座&#xff08;可使用临时版用于测…

vscode使用restClient实现各种http请求

vscode使用restClient实现各种http请求 一&#xff0c;安装插件 首先&#xff0c;我们要在vscode的扩展中&#xff0c;搜索rest Client&#xff0c;然后安装它&#xff0c;这里我已经安装过了。 安装后&#xff0c;我们就可以使用rest client插件进行http各种操作了。 二&…

动态规划的时间复杂度优化

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 优化动态规划的时间复杂度&#xff0c;主要有如下几种&#xff1a; 一&#xff0c;不同的状态表示。 比如&#xff1a;n个人&#xff0c;m顶帽子。 第一种方式&#xff1a;dp[i][mask] ,i表示前i个人已经选择帽子&…

听李国武老师讲帕累托图

一、帕累托图是什么&#xff1f; 帕累托图是一种特殊的图表&#xff0c;它以二维的方式展示数据&#xff0c;通过将数据按照两个特定的维度进行分类和排序&#xff0c;帮助我们更好地理解和分析数据。 二、如何使用帕累托图&#xff1f; 确定两个分类维度&#xff1a;首先&am…

力扣--动态规划1014.最佳观光组合

思路分析: 初始化左侧景点的评分为第一个景点的评分&#xff0c;最终结果为0。从第二个景点开始遍历数组。对于每个景点&#xff0c;计算当前观光组合的得分&#xff0c;即当前景点的评分 左侧景点的评分 - 两者之间的距离。更新最终结果为当前得分和之前结果的较大值。更新左…

数据结构:链表的冒泡排序

法一&#xff1a;修改指针指向 //法二 void maopao_link(link_p H){if(HNULL){printf("头节点为空\n");return;}if(link_empty(H)){printf("链表为空\n");return;}link_p tailNULL;while(H->next->next!tail){link_p pH;link_p qH->next;while(q…

探索创意的无尽宇宙——Photoshop 2020,你的视觉魔法棒

在数字艺术的广阔天地中&#xff0c;Photoshop 2020无疑是一颗璀璨的明星。这款由Adobe公司精心打造的图像处理软件&#xff0c;自推出以来&#xff0c;便以其强大的功能和卓越的性能&#xff0c;赢得了全球数百万设计师、摄影师和爱好者的青睐。无论是Mac还是Windows系统&…