当前位置: 首页 > 知识库问答 >
问题:

javascript - 求大佬写个算法,给定一个数值,求出这个数值落在一个区间上?

姚正真
2024-05-31

比如给680,区间是676-680,
给681,区间是681-685,
给682,区间是681-685
给687,区间是686-680

共有3个答案

壤驷兴朝
2024-05-31
function getRange(n: number) {    const max = Math.ceil(n / 5) * 5    return [max - 4, max]}console.log(getRange(680)) // [676, 680]console.log(getRange(681)) // [681, 685]console.log(getRange(682)) // [681, 685]console.log(getRange(687)) // [686, 690]
郗丰
2024-05-31
function check(num) {    const tempNum = num % 5 || 5;    return [num - tempNum + 1, num - tempNum + 5];}console.log(check(680));console.log(check(681));console.log(check(682));console.log(check(687));
左丘修齐
2024-05-31

首先,你的最后一个区间似乎写错了,因为686-680不是一个有效的区间(结束值小于起始值)。我假设你想写的是686-690或者类似的其他有效区间。

下面是一个简单的算法,它接受一个数值和一系列区间,并返回该数值落在哪个区间内。这里我假设区间是连续且不重叠的,并且每个区间的起始值都小于或等于其结束值。

这个算法使用一个简单的线性搜索来遍历所有的区间,直到找到一个包含给定数值的区间。注意,这个算法的时间复杂度是O(n),其中n是区间的数量。如果区间数量很大,可能需要考虑使用更高效的搜索算法或数据结构,比如二分搜索树或平衡二叉搜索树。

以下是Python代码实现:

def find_interval(number, intervals):    for interval in intervals:        start, end = interval        if start <= number <= end:            return interval    return None  # 如果找不到匹配的区间,返回None# 示例区间intervals = [(676, 680), (681, 685), (686, 690)]  # 我假设你最后一个区间是686-690# 测试print(find_interval(680, intervals))  # 输出: (676, 680)print(find_interval(681, intervals))  # 输出: (681, 685)print(find_interval(682, intervals))  # 输出: (681, 685)print(find_interval(687, intervals))  # 输出: (686, 690)

请注意,这个算法假设区间列表是按升序排列的,即每个区间的起始值都大于或等于前一个区间的结束值。如果区间列表没有排序,那么你可能需要在搜索之前先对它们进行排序。

 类似资料:
  • 本文向大家介绍写一个函数找出给定数组中的最大差值相关面试题,主要包含被问及写一个函数找出给定数组中的最大差值时的应答技巧和注意事项,需要的朋友参考一下 function getMax(arr){ for(let i=arr[arr.length-1];i>0;i--){ for(let j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ let temp

  • 我有一个数字列表,我有一个总和值。例如, 我想从这个列表中生成一个数字序列,这样序列就可以达到这个目标。为了帮助实现这一点,序列可以是任意长度的,并且允许重复。 ,或,或 我对这个问题做了很多研究,发现子集和问题很有趣。我的问题是,在一些方面,类似于子集和问题,因为我想找到一个产生目标和的数字子集。 然而,与子集求和问题不同的是,我只想找到一组数字,而子集求和问题会找到所有与目标求和的数字集(如果

  • 本文向大家介绍写一个方法获取指定数组中间的值(一个或者两个)相关面试题,主要包含被问及写一个方法获取指定数组中间的值(一个或者两个)时的应答技巧和注意事项,需要的朋友参考一下

  • py代码如下: 参考py写的node.js代码如下 node.js 的解密参数全是和py的一样,打印出来的key也是一样的,说明makeKey方法是一样的, 就是接下来的rc4解密,不知道是我node.js哪里写的不对,最后解密出来的verifierHash和 hash 不一样,求大神解答下,是不是node.js这里的rc4解密有问题导致的,还是哪里有问题?

  • python 代码:地址: node.js 代码: python 输入输出: node.js 输入输出: 请大佬指教为什么我参考 python 代码写的 node.js 代码最后输出的内容是不一样的?

  • 我非常想在两个值(,)之间生成随机整数,其和等于给定的数字。 注意:我在StackOverflow中发现了类似的问题;但是,它们并没有准确地解决这个问题(使用函数,因此数字介于0和1之间)。 例如:我需要8个0到24之间的随机数(整数),其中8个生成的数字的总和必须等于24。 感谢您的帮助。谢谢