如何在列表中找到最接近的值,这将返回更高的值? 示例:[3,7,12,19]的列表,如果我的值是8,如何获取最接近(更大)的值12?我想用飞镖这种逻辑。
答案 0 :(得分:2)
仅对List
进行过滤,仅过滤出大于或等于您的数字的值并获得最低值:
var n = 8; // Number to match
var l = [3, 7, 12, 19]; // List of values
var greater = l.where((e) => e >= n).toList()..sort(); //List of the greater values
print(greater.first); // Print the first value. -> 12
答案 1 :(得分:0)
List<int> arr = [6, 12, 11, 18, 24,5,6,99,10,9];
arr.sort((a, b) => a.compareTo(b));
print(arr);
print(Utils.getNextLargerNumber(8, arr));
及以下是逻辑:
static int getNextLargerNumber(int number, List<int> array)
{
for (var i = 0; i < array.length; i++) {
if (number < array[i]) {
return array[i];
}
}
return -1;
}