看似相似的问题:“查找数组中最接近的数字“(Java 中)和”找到与双打数组最接近的匹配”(实际上是一道地理问题)。
我有一个(已排序的)双打数组。给定一个任意数字(可能与数组元素之一完全匹配,也可能不完全匹配),如何返回最接近匹配的数字的索引?
例如,使用以下数组:
查询 2.5 将返回索引 1,对应于值 2.4。
用于检测完全超出数组元素范围的值的奖励点。例如,使用上面列出的数组,您的代码可能会确定 4.6 已加入,但 5.9 已退出。如果你想尝试这部分问题,具体细节就在你手中。
Array.BinarySearch,返回:
如果找到值,则为指定数组中指定值的索引。如果未找到 value 并且 value 小于数组中的一个或多个元素,则为负数,它是大于 value 的第一个元素的索引的按位补码。如果未找到 value 并且 value 大于数组中的任何元素,则为负数,它是(最后一个元素的索引加 1)的按位补码。
现在这不会让你 100% 到达那里,因为你会知道这个数字要么小于或大于匹配,但它实际上只留下两个索引来检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)