如果数组中缺少多于1个数字,如何找到缺少的数字?

时间:2016-11-25 13:38:47

标签: arrays

给出一个数组:array(1,2,3,4,6,8,9)。 这里缺少2个数字。我的问题是如果找不到多于1个数字,如何查找。

3 个答案:

答案 0 :(得分:3)

如果数组未排序,请对其进行排序,然后在邻居元素中查找增加的值。

答案 1 :(得分:1)

您可以提取min和max,并将数组与min和max。

的范围进行比较

Ruby示例:

array = [1,2,3,4,6,8,9,12]
array.sort.each_cons(2) do |a,b|
  if (b-1) > a then
    (a+1..b-1).each do |i|
      puts "#{i} is missing"
    end
  end
end

# 5 is missing
# 7 is missing
# 10 is missing
# 11 is missing

或排序并寻找大于1的差距

Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);

答案 2 :(得分:0)

在Javascript中(原则应该继续),你可以用数字排序然后按照数组的方式寻找那些不存在的数字。当你找到它们时,你可以记下它并继续前进。

看看这里:



var numberArray = [1, 2, 3, 4, 6, 8, 9, 15, 12];
var missingArray = [];

function findMissing() {
  var sortedArray = numberArray.sort(function(a, b) {
    return a - b
  });
  var currentNo = sortedArray[0];

  for (let i = 0; i < sortedArray.length; i++) {
    if (sortedArray[i] == currentNo) {
      currentNo++
    } else {
      missingArray.push(currentNo);
      i--;
      currentNo++;
    }
  }
  document.querySelector(".problem").innerHTML = "Array numbers are " + numberArray;
  document.querySelector(".result").innerHTML = "Missing numbers are " + missingArray;
}

findMissing();
&#13;
<div class="problem"></div>
<div class="result"></div>
&#13;
&#13;
&#13;

希望这有帮助。