gpt4 book ai didi

c# - 数组中最接近的数字的索引,最接近 x,不能大于 x

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:42 27 4
gpt4 key购买 nike

我如何编写一个函数,它接受一个整数数组和一个整数 x,并返回数组中最接近 x 参数且不大于 x 的整数索引。如果都在 x 之上,函数将返回负数。假设数组中的两个或多个数字不能相同。

最佳答案

假设您可以使用的数字是唯一的

public static int GetClosestIndex(int[] arr, int value)
{
var result = arr.Where(x => x < value).OrderByDescending(x => x);
return result.Any() ? Array.IndexOf(arr, result.FirstOrDefault()) : -1;
}

更新:(针对 Zastai)

这是一个性能更好的方法

public static int GetClosestIndex(int[] arr, int value)
{
int result = -1;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] < value)
{
if (result == -1 || arr[i] > arr[result])
{
result = i;
}
}
}
return result;
}

关于c# - 数组中最接近的数字的索引,最接近 x,不能大于 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com