[剑指offer]面试题第[49]题[Leetcode][第264题][JAVA][丑数][动态规划][堆]
生活随笔
收集整理的這篇文章主要介紹了
[剑指offer]面试题第[49]题[Leetcode][第264题][JAVA][丑数][动态规划][堆]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【問題描述】[中等]
【解答思路】
1. 動態規劃
時間復雜度:O(N) 空間復雜度:O(N)
2. 堆
時間復雜度:O(N) 空間復雜度:O(1)
class Solution {public int nthUglyNumber(int n) {PriorityQueue<Long> pq = new PriorityQueue<>();Set<Long> s = new HashSet<>();//初始化,放進堆和set,發現1要開Long數組才可以long[] primes = new long[]{2, 3, 5};for (long prime : primes) {pq.offer(prime);s.add(prime);}long num = 1;for (int i = 1; i < n; i++) {num = pq.poll();//遍歷三個因子for (int j = 0; j < 3; j++) {if (!s.contains(num * primes[j])) {pq.offer(num * primes[j]);s.add(num * primes[j]);}}}return (int) num;} }作者:jerry_nju 鏈接:https://leetcode-cn.com/problems/chou-shu-lcof/solution/dui-he-dong-tai-gui-hua-si-lu-xiang-jie-by-jerry_n/【總結】
1.動態規劃流程
第 1 步:設計狀態
第 2 步:狀態轉移方程
第 3 步:考慮初始化
第 4 步:考慮輸出
第 5 步:考慮是否可以狀態壓縮
2.優先隊列 按大小彈出 溢出問題long 去重set
參考鏈接:
https://leetcode-cn.com/problems/chou-shu-lcof/solution/dui-he-dong-tai-gui-hua-si-lu-xiang-jie-by-jerry_n/
參考鏈接:https://leetcode-cn.com/problems/chou-shu-lcof/solution/mian-shi-ti-49-chou-shu-dong-tai-gui-hua-qing-xi-t/
總結
以上是生活随笔為你收集整理的[剑指offer]面试题第[49]题[Leetcode][第264题][JAVA][丑数][动态规划][堆]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sprint会议记录
- 下一篇: MangoDB的基本操作