![](/img/trans.png)
[英]How to find the smallest and the biggest number of items in array in Java?
[英]How to find smallest missing number in range with given array in Dart or Java
想象一下,你有一個從 1 到 6 的范圍和數組 arr = [1,2,3] 如何編寫好的算法,其中 function 將根據數組中的數據返回此范圍內可能的最小缺失數,這意味着:
input: arr[1, 2, 3]
output: 4 is smallest missing
或者
input: arr[2, 3, 4]
output: 1 is smallest missing
我盡力使用來自www.geeksforgeeks.com的一些代碼,但這對我沒有幫助。 如果您在 Java 中編寫代碼也沒關系,但 Dart 是我正在研究的語言
非常感謝您提前提供幫助!
簡化使用循環
void main() {
//passing empty list
print(smallestMissingNumber([]));
//missing 3
print(smallestMissingNumber([1,2,4,5,6,7,8]));
//no missing element
print(smallestMissingNumber([1,2,3,4,5,6]));
}
int smallestMissingNumber(List<int> list){
int i = 1;
for(; i<= list.length; i++){
if(!list.contains(i)){
break;
}
}
return i;
}
Output:
1
3
7
偽代碼 -> 轉換為 java
Create a range array from [1,2,3,4,5,6].
Fetch your input array [2,3,4] whatever
Iterate you range array and check if the number exists in input array.
First missing number is the smallest number.
void main(List<String> args) {
final universe = List<int>.generate(10, (i) => i + 1);
final input = [1,3,6];
var minMissing = universe.toSet().difference(input.toSet()).reduce((cur, next) => cur < next ? cur : next);
print(minMissing);
}
結果:
2
你可以嘗試這樣的事情。
Arrays.sort(arr);
int smallestMissing =-1;
for(int i=0;i<arr.length;i++){
if(arr[i]!=i+1){
smallestMissing = i+1;
break;
}
}
if(smallestMissing==-1){
smallestMissing = arr.length;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.