![](/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.