Most efficient method to check for range of numbers within number without duplicates(检查数字内数字范围而不重复的最有效方法)
问题描述
给定一个数字 n
,一个最小数字 min
,一个最大数字 max
,什么是最有效的确定方法
数字
n
是否在范围内,包括min
-max
数字
n
是否包含重复的数字这里的效率意味着方法或方法集需要最少的计算资源,并在最少的时间内返回
true
或false
上下文:
for
循环中if
的条件,可能需要数千到数十万次迭代才能返回结果;其中返回true
或false
对于Number
检查所需的毫秒数可能会影响性能
在 DevTools
的 Profiles
面板上,对 71,3307
项迭代的集合,列出了以下 RegExp
使用 27.2ms
的总 1097.3ms
来完成循环.在 836,7628
个项目的集合中,迭代 RegExp
下面使用了 193.5ms
,总共 11285.3ms
.p>
要求:在最短的时间内返回上述参数的 Boolean
true
或 false
的最有效方法.
注意:解决方案不必局限于 RegExp
;下面用作返回预期结果的模式.
当前 js
利用 RegExp
re
, RegExp.protype.test()
var min = 2, 最大值 = 7, re = new RegExp("[" + min + "-" + max + "](.)(?!=1)", "g"), arr = [81, 35, 22, 45, 49];for (var i = 0; i < arr.length; i++) {console.log(re.test(arr[i]), i, arr[i])/*假 0 81真实 1 35假 2 22真实 3 45假 4 49*
本文标题为:检查数字内数字范围而不重复的最有效方法
基础教程推荐
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 直接将值设置为滑块 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01