Arrays - Find missing numbers in a Sequence

后端 未结 15 1382
小鲜肉
小鲜肉 2021-02-01 04:08

I\'m trying to find an easy way to loop (iterate) over an array to find all the missing numbers in a sequence, the array will look a bit like the one below.

var nu

15条回答
  •  一生所求
    2021-02-01 04:55

    To find a missing number in a sequence, First of all, We need to sort an array. Then we can identify what number is missing. I am providing here full code with some test scenarios. this code will identify only missing positive number, if you pass negative values even then it gives positive number.

    function findMissingNumber(inputAr) {
      // Sort array
      sortArray(inputAr);
    
      // finding missing number here
      var result = 0;
      if (inputAr[0] > 1 || inputAr[inputAr.length - 1] < 1) {
        result = 1;
      } else {
        for (var i = 0; i < inputAr.length; i++) {
          if ((inputAr[i + 1] - inputAr[i]) > 1) {
            result = inputAr[i] + 1;
          }
        }
      }
      if (!result) {
        result = inputAr[inputAr.length - 1] + 1;
      }
      return result;
    }
    
    function sortArray(inputAr) {
      var temp;
      for (var i = 0; i < inputAr.length; i++) {
        for (var j = i + 1; j < inputAr.length; j++) {
          if (inputAr[j] < inputAr[i]) {
            temp = inputAr[j];
            inputAr[j] = inputAr[i];
            inputAr[i] = temp;
          }
        }
      }
    }
    
    console.log(findMissingNumber([1, 3, 6, 4, 1, 2]));
    console.log(findMissingNumber([1, 2, 3]));
    console.log(findMissingNumber([85]));
    console.log(findMissingNumber([86, 85]));
    console.log(findMissingNumber([0, 1000]));

提交回复
热议问题