448. Find All Numbers Disappeared in an Array 寻找有界数组[1,n]中的缺失数

[抄题]:

Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.

Find all the elements of [1, n] inclusive that do not appear in this array.

Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.

Example:

Input:
[4,3,2,7,8,2,3,1]Output:
[5,6]

 [暴力解法]:

时间分析:

空间分析:

 [优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

不知道怎么去除重复

[一句话思路]:

nums[nums[i] -1] = -nums[nums[i]-1] 每个数字处理一次。没有被处理的正数就是被前面的挤兑了。背吧

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 要做index的数必须取绝对值

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

没有被处理的正数就是被前面的挤兑了.这题[1,n]两端必有的情况太特殊

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

442. Find All Duplicates in an Array 出现两次的:还是考数学啊

 [代码风格] :

class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {//iniList<Integer> result = new ArrayList<Integer>();//ccif (nums == null || nums.length == 0) {return result;}//-1for (int i = 0; i < nums.length; i++) {int val = Math.abs(nums[i]) - 1;//trueif (nums[val] > 0) {nums[val] = - nums[val];}}//checkfor (int i = 0; i < nums.length; i++) {if (nums[i] > 0) {result.add(i + 1);}}//returnreturn result;}
}
View Code

 

转载于:https://www.cnblogs.com/immiao0319/p/8870388.html

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

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

相关文章

数据结构与算法--1.整型变量值互换

问题: 给定两个整型变量a,b,在不使用其他变量的情况下&#xff0c;实现两个变量值的交换。 """ 问题:整型变量值互换 给定两个整型变量a,b,在不使用其他变量的情况下&#xff0c;实现两个变量值的交换。 """ a 1234 b 5678 print("binar…

什么是真正的高清,你知道吗?

摘要&#xff1a;高清&#xff0c;英文为“High Definition”&#xff0c;意思是“高分辨率”。一般所说的高清&#xff0c;有四个含义&#xff1a;高清电视&#xff0c;高清设备&#xff0c;高清格式&#xff0c;高清电影。 高清&#xff0c;英文为“High Definition”&#x…

oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)

1. 简介 Oracle Database11gR1引进了SQL PlanManagement&#xff08;简称SPM&#xff09;&#xff0c;一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具&#xff0c;这样&#xff0c;限制了刷新优化器统计数据&#xff0c;已有应用改变&#xff0c;甚至数据库版本升级带…

Linux基本命令+Makefile

1.linux下查看进程占用cpu的情况(top)&#xff1b; 格式 top [&#xff0d;] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d&#xff1a;指定更新的间隔&#xff0c;以秒计算。q&#xff1a;没有任何延迟的更新。如果使用者有超级用户&#xff0c;则top命令将会以最高的优先…

数据结构与算法--2.数组的定位排序

问题&#xff1a; 给定一个数组A以及下标i&#xff0c;将数组元素进行调整&#xff0c;使得所有比A[i]小的元素排在前边&#xff0c;接着是所有等于A[i]的元素&#xff0c;最后排列的是比A[i]大的元素 思路&#xff1a; 第一步&#xff1a;将数组分成两部分&#xff0c;一部…

mysql语法题_mysql数据库题语法练习

一、练习。导入下面sql执行语句/*数据导入&#xff1a;Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50624Source Host : localhostSource Database : sqlexamTarget Server Type : MySQLTarget Server Version …

ipv4的不足

v地址基本耗尽&#xff0c;这是当前最棘手的问题v路由表越来越大v功能不足&#xff0c;缺少对多媒体信息传输的支持v缺少对高速传输的支持v缺少对安全的支持v缺少对主机漫游的支持

OpenGL开发库的详细介绍

OpenGL开发库的组成 开发基于OpenGL的应用程序&#xff0c;必须先了解OpenGL的库函数。它采用C语言风格&#xff0c;提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式<库前缀><根命令><可选的参数个数&g…

thinkphp5运行原理_ThinkPHP5.1~5.2全版本远程代码执行高危漏洞预警

漏洞综述关于ThinkPHPThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;其借鉴了国外很多优秀的框架和模式&#xff0c;包括使用面向对象的开发结构和MVC模式&#xff0c;融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式等。该框架常…

ASP.NET MVC中controller和view相互传值的方式

ASP.NET MVC中Controller向view传值的方式&#xff1a; ViewBag、ViewData、TempData单个值的传递Json匿名类型ExpandoObjectCookieViewModel(向普通View页面传个Model对象、向强类型页面传一个Model对象、用一个ViewModel对象解决所有问题)ASP.NET MVC中view向Controller传值的…

自定义SeekBar 实时显示百分比进度

进度下方实时显示百分比进度禁止掉了SeekBar的滑动事件 详情 githus地址

数据结构与算法--3.字符串的旋转

题目&#xff1a; A是含有n个元素的数组&#xff0c;如果可以申请到最大内存&#xff0c;那么把A从位置i开始旋转是比较简单的。例如&#xff1a;A:a,b,c,d,e.其中i3,旋转后的字符串A为&#xff1a;d,e,a,b,c要求设计一个时间复杂度为O(n),空间复杂度为O(1)的算法&#xff0c;…

三网融合情况下,实时语音通信技术解决之道

随着技术和标准的不断成熟,伴随着“三网合一”的大潮,VoIP可望成为下一代电信基础设施结构的杨心,使未来各电信业务综合统一在IP网络上成为可能,导致数据的融合和未来电信市场的重组,并带来新的经济模式和价值链。 Internet在全世界范围内的快速发展和语音信号处理技术的进步,促…

ipv6相对于ipv4的改进

v更大的地址空间&#xff1a;16字节&#xff0c;128位v首部的简化&#xff1a;只有7个固定域&#xff0c;撤消了有关分段的域和校验和域&#xff0c;以便更快地处理分组&#xff0c;提高路由器的吞吐量缩短延时。v更好地支持选项&#xff1a;选项是有次序的&#xff0c;以便路由…

轻量高效的开源JavaScript插件和库 【转】

图片布局轮播图弹出层音频视频编辑器字符串表单存储动画时间其它加载器构建工具测试包管理器CDN图片 baguetteBox.js - 是一个简单易用的响应式图像灯箱效果脚本。demoLightgallery.js - 是一个功能齐全的JavaScript图像灯箱插件。demoviewerjs - 是一个图像预览插件。democrop…

Linux内核中的常用宏container_of其实很简单【转】

转自&#xff1a;http://blog.csdn.net/npy_lp/article/details/7010752 开发平台&#xff1a;Ubuntu11.04 编 译器&#xff1a;gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux内核中是一个常用的宏&#xff0c;用于从包含在某个结构中的指针获得结构本…

mysql concat例子_MYSQL中CONCAT详解

concat()函数1. 功能&#xff1a;返回结果为连接参数产生的字符串。如有任何一个参数为NULL &#xff0c;则返回值为 NULL。2. 语法concat(str1, str2,...)3. 例子案例一&#xff1a;mysql> select concat(苹果,香蕉,梨子);------------------------------| CONCAT(苹果,香蕉…

常见的状态响应码

200&#xff1a;请求正常&#xff0c;服务器正常的返回数据 301&#xff1a;永久重定向。比如在访问www.jingdong.com的时候&#xff0c;会重定向到www.jd.com。 302&#xff1a;临时重定向。比如在访问一个需要登录的界面时&#xff0c;而此时没有登录&#xff0c;那么就会重定…

软件行业为什么那么多项目经理

记得听谁说过&#xff0c;软件行业的项目经理太滥了&#xff0c;二十几岁的毛头小伙子&#xff0c;动不动就是项目经理&#xff0c;手下没几个人&#xff0c;管的也没几个事&#xff0c;在其他行业&#xff0c;项目经理一般都是四五十岁的老头子做&#xff0c;要联系这&#xf…

ipv6的表示方法

v冒分十六进制表示法X:X:X:X:X:X:X:X 其中X表示地址中16位二进制数的十六进制值 例&#xff1a;FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 v零压缩法如其中有多个连续的零&#xff0c;则可用零压缩法 如 &#xff1a;1080:0000:0000:0000:0008:0800:200C:417A 可写成&am…