仅当值';s小于x

本文关键字:小于 | 更新日期: 2023-09-27 18:21:45

我有一个双打数组。如何找到最接近某个输入值的值而不高于该输入值。

仅当值';s小于x

在C#中使用LINQ

// Assuming values is IEnumerable<double>
values = values.Where(v => v <= input);
return values.Any() ? values.Max() : resultWhenInputTooSmall;
public static int checkClosest(int target)
{
    int closestVal = 0;
    for(int i = 0; i < thing.length; i++)
        if(thing[i] < target && thing[i] > closestVal) closestVal = thing[i];
    return closestVal;
}

在CSharp中,您可以使用linq来更容易地实现它。

var result = doubleArray.Where(p => p < inputValue).OrderByDescending(p => p).FirstOrDefault();

首先对它们进行排序(有很多方法)。然后对你要查找的数字进行二进制搜索。