給出一個數組: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. 如何在使用sqlserver的表中找到缺失的數字?
- 5. 從數組中查找缺少的數字
- 6. 數組 - 在序列中查找缺少的數字
- 7. 如何減少數組鍵值如果有缺失值
- 8. 如何在數組或mySQL表中查找缺少的數據?
- 9. 查找數組中缺少的元素
- 10. 在我的數組中缺少結果
- 11. 在numpy數組中找到缺失值
- 12. 如何查找缺少的數據
- 13. OL缺失的數字
- 14. VBA:在其中一個範圍內找到缺失的數字
- 15. 如何在兩個MySQL表之間的對抗中找到缺失的數字?
- 16. PHP數組到MySQL BD ...缺少數組字段
- 17. 對_e()缺少參數1
- 18. Heroku TypeError:parse_requirements()缺少1個必需的關鍵字參數:'會話'
- 19. 如何使用SQL從單列表中找到缺少的數字?
- 20. SAS日期(數字)爲缺少字符(。)
- 21. PHP - 保存一個數組,如果缺少一個值
- 22. 警告:缺少1個參數
- 23. 使用「decodeUri」缺少一些字符(如'+')
- 24. 缺少必需的參數:javascript函數中的數字錯誤
- 25. 找到:缺少參數到-exec
- 26. 如何查找每個連續數字間隔中的第一個缺失數字?
- 27. SQL Server數據頁中缺少字節
- 28. 我在將數字加到我的數字鍵盤上時缺少什麼?
- 29. 如何失敗Maven構建一個缺少的參數?
- 30. 在Timesstamp中查找缺少的數據
一些示例代碼和編程語言會很有用,你基本上只是要求我們寫代碼 –