一、题目内容

image.png

二、题解

解法1:

思路

暴力

代码

  1. class Solution {
  2. public int missingNumber(int[] nums) {
  3. for (int i = 0 ;i<nums.length; i++){
  4. if (nums[i] > i) {
  5. return i;
  6. }
  7. }
  8. return nums.length;
  9. }
  10. }

解法2:

思路

二分查找。
nums[i] == m,说明在右区间。
nums[i] == m,i = j,说明缺失的数为n-1
image.png

代码

  1. class Solution {
  2. public int missingNumber(int[] nums) {
  3. int i = 0;
  4. int j = nums.length - 1;
  5. while (i <= j) {
  6. int m = (i + j) / 2;
  7. if (nums[m] == m) {
  8. i = m + 1;
  9. } else {
  10. j = m - 1;
  11. }
  12. }
  13. return i;
  14. }
  15. }