LeetCode448-找到所有数组中消失的数字(原地数组)
因为题目数组有范围1 ≤ a[i] ≤ n
找到所有在 [1, n] 范围之间没有出现在数组中的数字
就是说,这个数组,如果数字是全的话,应该可以表示为
[1,2,3,4,5,6..........,N]
有重复的数字,就是说一些位置上的数字被其他数字占了,那么把它回复原样,在看一下那些位置上的数字不对就行了。
一个数字应该在的index,是数字-1,比如1放在index0那。
一开始的想法是,从index0开始遍历,遇到和index不同的,就放到他应该在的位置 。
然后取出那个位置上的数字,继续放到它应该在的位置上,一直继续。知道这一轮数字都在他们应该在的位置了。
继续迭代index。
这样有个问题,好像有两个循环了。
改进的方法。
当然位置的数字,和他应该在的位置上的数字进行交换,index不变。
这样最外层的循环就会完成这个迭代了。
这种做法,竟然莫名其妙是对的!太强了!
就算一开始有些位置没有放到正确的数字,但是最后都会被换回去。
因为index到每个,位置,那个位置上的数字,都会被放到正确的位置。
var findDisappearedNumbers = function(nums) {let index = 0;while(index<nums.length){let temp = nums[index];// 如果这个数字在他对应的数字上if(temp == nums[temp-1]){//进行下一个位置的判断index++;}else{//es6的交换[nums[index],nums[temp-1]] = [nums[temp-1],nums[index]]}}let arr = [];//检查位置不对的数字for(let i=0;i<nums.length;i++){if(i != nums[i]-1){//数字是位置+1arr.push(i+1);}}return arr;};
转载于:https://www.cnblogs.com/weizhibin1996/p/9775663.html
LeetCode448-找到所有数组中消失的数字(原地数组)相关推荐
- 努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]
文章目录 题目描述-448 一.哈希Map 二.空间复杂度的优化--鸽笼原理 三.总结 题目描述-442 一.还是hashMap 二.继续鸽笼原理 题目描述-41 一.基础方案 二.数组模拟Map 题 ...
- 《LeetCode力扣练习》第448题 找到所有数组中消失的数字 Java
<LeetCode力扣练习>第448题 找到所有数组中消失的数字 Java 一.资源 题目: 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你 ...
- leetcode(3)——697. 数组的度(C++版本注释)(map容器),448. 找到所有数组中消失的数字(取余操作,C++中的auto类型)
文章目录 前言 697 程序 思路 收获 map容器 448 程序 收获 取模操作的思考 auto 前言 大佬的程序,边刷边总结边学语言. 题目697 697 程序 class Solution {p ...
- 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...
如何才能通过面试拿到大厂Offer? "刷leetcode!" 这是我听到最多的回答! 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是面测试.算 ...
- 2021-12-19:找到所有数组中消失的数字。 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums
2021-12-19:找到所有数组中消失的数字. 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你找出所有在 [1, n] 范围内但没有出现在 nums ...
- Leetcode--448. 找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不 ...
- 找到所有数组中消失的数字—leetcode448
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不 ...
- leetcode448. 找到所有数组中消失的数字 天秀记录法
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不 ...
- ★LeetCode(448)——找到所有数组中消失的数字(JavaScript)
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不使 ...
最新文章
- java 对象怎么序列化,java对象序列化总结
- escape相关方法使用
- Android 开机自动启动服务
- python 使用jinjia2 生成文件的空格处理
- IndexError: list index out of range image_name=self.images_name[index]
- flutter android 和 ios 发布
- 编程十年 (3):初识计算机
- 我所认识的EXT2(二)
- HP 滤波 (Hodrick Prescott Filter)
- 一种基于linux系统的精准流量统计方法
- 玩家密无忧 v7.0.7 绿色
- 实例讲解EasyLanguage入门
- 浙大计算机系学霸,浙大学霸将脑电波控制变现实
- 数据结构之三元组的实现
- linux命令删除raid,甲秀之音-Linux环境下删除硬盘中残留的raid信息
- 【分享】光纤光缆PPT
- 前端攻城狮的自我修养1
- 什么是函数式编程?总结
- spring配置方式:
- 微信小程序项目实战:电影购票系统-李宁-专题视频课程
热门文章
- 大型K8s沙龙来啦,火速报名——Kubernetes Cloud Native Meetup
- Android学习随笔 -- draw9patch的使用
- c语言 -1%4,**************
- SpringCloud 从菜鸟到大牛之五 统一配置中心 Spring Cloud Config
- golang goroutine协程运行机制及使用详解
- python--爬虫01
- mysql 的 sql_mode.only_full_group_by属性解析
- 计算机应用基础山东大学,山东大学计算机应用基础
- RocketMQ在Windows环境下部署(亲测有效)
- 一文理解设计模式之--观察者模式(Observer)