给出一个数组:array(1,2,3,4,6,8,9)。 这里有2个数字缺失。我的问题是如何找到,如果超过1个数字缺失。如果数组中缺少1个以上的数字,如何找到这些缺失的数字?
1
A
回答
3
如果未对数组进行排序,对其进行排序,然后在相邻元素中寻找多于1的增加值。
1
您可以提取最小值和最大值,并将数组与最小值和最大值的范围进行比较。
红宝石例如:
array = [1,2,3,4,6,8,9]
min, max = array.minmax
missing = (min..max).to_a - array
#=> [5,7]
或排序和寻找差距是大于1
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
+0
我真的很喜欢获取最大和最小的ID。你可以减去它们并检查数组的长度以找出错过的数目。 – Seb
+0
你需要检查数组没有重复,只包含整数。否则'3,3,5'和'3,3.1,5'将会匹配 –
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();
<div class="problem"></div>
<div class="result"></div>
希望这有助于。
相关问题
- 1. 如何在1到100的整数数组中找到缺失的数字?
- 2. 查找数组中缺失的数字
- 3. 如何在数字序列中找到缺少的数字?
- 4. 在排序数组中找到缺失的数字
- 5. 查找序列中缺少的数字
- 6. 如何在使用sqlserver的表中找到缺失的数字?
- 7. 数组 - 在序列中查找缺少的数字
- 8. 从数组中查找缺少的数字
- 9. 缺少参数1
- 10. 如何减少数组键值如果有缺失值
- 11. 如何在数组或mySQL表中查找缺少的数据?
- 12. 如何找到2列之间的缺失数字?
- 13. 如何检查一系列数字中的缺失数字?
- 14. 查找数组中缺少的元素
- 15. 如何查找缺少的数据
- 16. 在我的数组中缺少结果
- 17. 在numpy数组中找到缺失值
- 18. 使用SQL查找缺失的数字
- 19. 数组中缺少整数
- 20. OL缺失的数字
- 21. VBA:在其中一个范围内找到缺失的数字
- 22. 如何在两个MySQL表之间的对抗中找到缺失的数字?
- 23. 在android 4.3+中缺少textview中的一些字母和数字
- 24. 修复缺少数字的代码数
- 25. PHP数组到MySQL BD ...缺少数组字段
- 26. 缺少1个必需的posional参数
- 27. 缺少1个潜在的参数
- 28. ElasticSearch函数分数查询不默认为1如果缺少字段
- 29. 如何将缺失的数字添加到列表中
- 30. 如何从seqentail号码找出缺失的数字?
一些示例代码和编程语言会很有用,你基本上只是要求我们写代码 –