住房城乡建设部门户网站,网站设计的第一步是,营销网站认识,有公司可以做网站升级ipv6昨天忙过头#xff0c;等想起来已经 12 点多了#xff0c;于是乎断更了。在这里先跟广大读者说声抱歉#xff0c;并且稍后我会再更一篇。 一、题目 数组nums包含从0到n的所有整数#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗等想起来已经 12 点多了于是乎断更了。在这里先跟广大读者说声抱歉并且稍后我会再更一篇。 一、题目 数组nums包含从0到n的所有整数但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在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.length1)*nums.length/2;int s2 0;for(i0;inums.length;i){s2nums[i];}return s1-s2;}} 以上就是本篇博客的全部内容啦如有不足之处还请各位指出期待能和各位一起进步