我有一系列双打。如何在不高于输入值的情况下找到最接近某个输入值的值。
答案 0 :(得分:3)
在C#中使用LINQ
// Assuming values is IEnumerable<double>
values = values.Where(v => v <= input);
return values.Any() ? values.Max() : resultWhenInputTooSmall;
答案 1 :(得分:0)
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;
}
答案 2 :(得分:-1)
在CSharp中,您可以使用linq更轻松地实现它。
var result = doubleArray.Where(p => p < inputValue).OrderByDescending(p => p).FirstOrDefault();
答案 3 :(得分:-2)
首先对它们进行排序(很多方法)。然后二进制搜索您要查找的号码。