算法-丑数(中等)
时间:2022-07-28
本文章向大家介绍算法-丑数(中等),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
丑数
难度:中等
描述:
设计一个算法,找出只含素因子 2,3,5 的第 n 小的数。
符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12…
样例:
如果 n = 9, 返回 10
思路分析:
这类题目就是找规律,找到规律就好写了。
我再提供多一些数据:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24]
代码模板:
/**
* @param n: An integer
* @return: the nth prime number as description.
*/
const nthUglyNumber = function(n) {
// write your code here
};
想一想再看答案
想一想再看答案
想一想再看答案
代码:
// [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24]
const nthUglyNumber = function(n) {
let arr = [1];
let min,
nex2,
nex3,
nex5,
i2 = i3 = i5 = 0;
for (let i = 1; i < n; i++) {
// 除了第一个数,每个数都是2、3、5的倍数,把它们的倍数找出来,数字较小添加进去
nex2 = arr[i2] * 2;
nex3 = arr[i3] * 3;
nex5 = arr[i5] * 5;
min = Math.min(nex2, nex3, nex5);
// 增加他们的倍数 为下次计算做准备
if (min === nex2) i2++;
if (min == nex3) i3++;
if (min == nex5) i5++;
arr.push(min);
}
return arr[arr.length - 1];
// return arr
};
console.log('输出', nthUglyNumber(9), nthUglyNumber(15));
鼓励我一下:
觉得还不错的话,给我的项目点个star吧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何在SAP Spartacus自定义Component里消费数据
- 使用ConfigModule.withConfig替换SAP Spartacus标准Component
- pod 资源对象
- 在Java8的foreach()中使用return/break/continue
- JavaScript 覆盖对象字段级别
- Zabbix5.0 问题记录
- 「查缺补漏」巩固你的Nginx知识体系
- 超级帐本合约调用——fabric SDK Node调用TBaaS的合约
- TBaaS合约调用_fabric SDK Node 不使用Connection Profile
- helm安装、使用、实践
- 浅析asp .net core 中间件
- 玩转jenkins - 在自己的服务器上安装jenkins
- CPU有个禁区,内核权限也无法进入!
- Java bytecodes
- 云原生分布式深度学习初探