当前位置: 首页 > news >正文

『力扣每日一题14』:消失的数字

昨天忙过头,等想起来已经 12 点多了,于是乎断更了。在这里先跟广大读者说声抱歉,并且稍后我会再更一篇。

一、题目

数组nums包含从0n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

注意:本题相对书上原题稍作改动

示例 1:

输入:[3,0,1]
输出:2

示例 2:

输入:[9,6,4,2,3,5,7,0,1]
输出:8

二、思路解析

方法一

看到这道题,我第一反应是:先把数组排序,然后遍历数组,看看哪一个元素跟下标值不一样,直接返回它。

可是,我最终没有写出来,完整代码我也找到,会放在文末。

方法二

第二种方法则是用等差数列的求和公式,先从零到 nums.length 遍历一遍,得到一个『不缺任何数字的总和』,然后再把数组遍历,用前一个数减去后一个数,即可得到缺失的数字~

三、完整代码

方法一

class Solution {public int missingNumber(int[] nums) {//1.排序Arrays.sort(nums);//2.数组中下标对应 数组中的值for(int i = 0; i < nums.length; i++) {//3.判断:如果下标和值不一样,那么就是消失的数字if(i != nums[i]) {return i;}}//4.如果没有找到,那就是数组的长度return nums.length;}
}

方法二

class Solution {public int missingNumber(int[] nums) {int i = 0;int s1 = (nums.length+1)*nums.length/2;int s2 = 0;for(i=0;i<nums.length;i++){s2+=nums[i];}return s1-s2;}}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

http://www.lryc.cn/news/184818.html

相关文章:

  • 【b站韩顺平 快速学Java课】Java的JDK8(包括公共JRE8)安装教程 总结
  • Spark 弹性分布式数据集 RDD
  • 电脑被删除的文件怎么恢复?2023年数据恢复方法分享
  • 李宏毅 2022机器学习 HW3 boss baseline 上分记录
  • SpringBatch适配不同数据库的两种方法
  • 【ARM CoreLink 系列 5 -- CI-700 控制器介绍 】
  • 找不到msvcp140_1.dll怎么办,快速解决msvcp140_1.dll问题的方法分享
  • 华为云云耀云服务器L实例评测|部署私有网盘 Nextcloud
  • vue3中使用插件vite-plugin-svg-icons
  • 面试题20231008
  • 2023全新小红书图集和视频解析去水印网站源码
  • 2023去水印小程序源码修复版-前端后端内置接口+第三方接口
  • 鸿蒙手表开发之使用adb命令安装线上包
  • 华为OD机试 - 计算最大乘积(2022Q4 100分)
  • 安卓RecycleView包含SeekBar点击列表底部圆形阴影处理
  • 计算机视觉中的可解释性分析
  • Python 爬虫报错分析
  • [python 刷题] 3 Longest Substring Without Repeating Characters
  • 阿里云轻量应用服务器流量价格表(计费/免费说明)
  • C++设计模式-装饰器(Decorator)
  • 【C语言】结构类型的定义和使用
  • C++内存管理:其二、数组内存管理
  • No169.精选前端面试题,享受每天的挑战和学习
  • Hadoop设置hdfs全局指令
  • IDEA 2023.1.3图文安装教程及下载
  • 【JVM】运行时数据区(内存区域划分)详解
  • Python-Scrapy框架(框架学习)
  • flink生成水位线记录方式--基于特殊记录的水位线生成器
  • Arcgis日常天坑问题(1)——将Revit模型转为slpk数据卡住不前
  • JavaWeb:上传文件