给出一个数组:array(1,2,3,4,6,8,9)。 这里缺少2个数字。我的问题是如果找不到多于1个数字,如何查找。
答案 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;
希望这有帮助。