剑指offer---ugly number
来源:互联网 发布:五毛特效是什么软件 编辑:程序博客网 时间:2024/06/09 00:27
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
解题思路:使用heap的方式进行排序处理,然后分别从其中向外取出数据。
java
import java.util.HashSet;import java.util.PriorityQueue;import java.util.Queue;import java.util.Set;public class Solution { public int GetUglyNumber_Solution(int index) {if (index <= 0) { return 0; } if (index == 1) { return 1; } Set<Long> set = new HashSet<>(); Queue<Long> pq = new PriorityQueue<>(); set.add((long)1); pq.offer((long)1); int count = 0; long val = 0; int[] arr = new int[] {2, 3, 5}; while (count < index) { val = pq.poll(); set.remove(val); count++; for (int i = 0; i < 3; i++) { if (set.contains(val * arr[i])) { continue; } else { pq.offer(val * arr[i]); set.add(val * arr[i]); } } } return (int)val; }}
阅读全文
0 0
- 剑指offer---ugly number
- 264. Ugly Number II 剑指offer
- 剑指offer 面试题34:寻找丑数(Leetcode 263.ugly number)解题报告
- ugly number & ugly numberii
- Ugly Number
- ugly number
- Ugly Number
- Ugly Number
- Ugly Number
- Ugly number
- Ugly Number
- ugly number
- Ugly Number
- Ugly Number
- Ugly Number
- Ugly Number
- Ugly Number
- ugly number
- 去掉jupyter密码
- 游戏开发志
- 在linux中执行shell脚本,当前用户执行没有问题,设置为定时任务却报错
- 入手STM32的见解
- docker基本使用
- 剑指offer---ugly number
- 矩阵输出
- linux文件操作API 函数open read write close
- c#把字符串分割为多个字符串
- WebSocket安卓客户端实现详解(三)–服务端主动通知
- Sublime Text 3 绝对神器
- uva 11991 Easy Problem from Rujia Liu?
- Wait/Notify通知机制解析
- BZOJ1500: [NOI2005]维修数列(洛谷P2042)