劍指 Offer 49. 丑數

我們把只包含質因子 2、3 和 5 的數稱作丑數(Ugly Number)。求按從小到大的順序的第 n 個丑數。

示例:

輸入: n = 10
輸出: 12
解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個丑數。
說明:

  • 1 是丑數。
  • n 不超過1690。

解題思路

  1. 使用小根堆,每次從小根堆拿出一個元素cur,并且將cur *2,cur *3,cur *5加入小根堆,當第n次從小根堆出隊的元素就是第n個丑數

代碼

class Solution {public int nthUglyNumber(int n) {PriorityQueue<Long> priorityQueue=new PriorityQueue<>();HashSet<Long> hashSet=new HashSet<>();priorityQueue.add(1L);hashSet.add(1L);for (int i=0;i<n-1;i++){long cur = priorityQueue.poll();if (!hashSet.contains(cur*2)){hashSet.add(cur*2);priorityQueue.add(cur*2);}if (!hashSet.contains(cur*3)){hashSet.add(cur*3);priorityQueue.add(cur*3);}if (!hashSet.contains(cur*5)){hashSet.add(cur*5);priorityQueue.add(cur*5);}}return (int)priorityQueue.poll().longValue();}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390410.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

維護舊項目_為什么您的舊版軟件難以維護-以及如何處理。

維護舊項目Believe it or not, some organizations still rely on legacy software to carry out operations even though newer and more versatile options are available. We know that “old is gold”, but legacy applications cannot glitter forever. As such, these o…

python--內置函數

內置函數現在python一共為我們提供了68個內置函數&#xff0c;講述過程&#xff1a;一、其他中的12個 &#xff08;一&#xff09;執行 字符串 類型代碼的執行 1 eval執行有意義的字符串 ,有返回值 print(eval(12))print(eval("print(美麗)")) #美麗 2 ex…

Nancy簡單實戰之NancyMusicStore(四):實現購物車

原文:Nancy簡單實戰之NancyMusicStore(四)&#xff1a;實現購物車前言 上一篇&#xff0c;我們完成了商品的詳情和商品的管理&#xff0c;這一篇我們來完成最后的一個購物車功能。 購物車&#xff0c;不外乎這幾個功能&#xff1a;添加商品到購物車&#xff0c;刪除購物車中的商…

劍指 Offer 32 - I. 從上到下打印二叉樹

從上到下打印出二叉樹的每個節點&#xff0c;同一層的節點按照從左到右的順序打印。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 節點總數 < 1000 解題思路 使用隊列實現層序遍歷 代碼 /*** …

數據庫表命名 單數復數_數據是還是數據是? “數據”一詞是單數還是復數?

數據庫表命名 單數復數Ill cut right to the chase: the word "data" is plural. Its the plural form of Latin word "datum." Many data. One datum.我將緊追其后&#xff1a;“數據”一詞是復數形式。 它是拉丁文“基準”的復數形式。 許多數據。 一個基…

《七步掌握業務分析》讀書筆記六

分析技術和呈現格式 詞匯表 強有力溝通的一個重要內容是一致地使用術語和慣用語。每次談話都涉及對術語的共同理解。 工作流圖&#xff08;也稱為流程圖、UNL活動圖和過程圖&#xff09; 工作流程把一個或多個業務過程的細節可視化地呈現出來&#xff0c;以澄清理解或提出過程改…

Mysql數據庫--語句整理/提升/進階/高級使用技巧

一、基礎 1、說明&#xff1a;創建數據庫CREATE DATABASE database-name 2、說明&#xff1a;刪除數據庫drop database dbname3、說明&#xff1a;備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat--- …

1104. 二叉樹尋路

在一棵無限的二叉樹上&#xff0c;每個節點都有兩個子節點&#xff0c;樹中的節點 逐行 依次按 “之” 字形進行標記。 如下圖所示&#xff0c;在奇數行&#xff08;即&#xff0c;第一行、第三行、第五行……&#xff09;中&#xff0c;按從左到右的順序進行標記&#xff1b;…

javascript 代碼_如何開始對JavaScript代碼進行單元測試

javascript 代碼We all know we should write unit tests. But, its hard to know where to start and how much time to devote to tests compared to actual implementation. So, where to start? And is it just about testing code or do unit tests have other benefits?…

個人作業——軟件工程實踐總結作業

一、請回望暑假時的第一次作業&#xff0c;你對于軟件工程課程的想象 1&#xff09;對比開篇博客你對課程目標和期待&#xff0c;“希望通過實踐鍛煉&#xff0c;增強計算機專業的能力和就業競爭力”&#xff0c;對比目前的所學所練所得&#xff0c;在哪些方面達到了你的期待和…

(轉)在阿里,我們如何管理代碼分支?

阿里妹導讀&#xff1a;代碼分支模式的選擇并沒有絕對的正確和錯誤之分&#xff0c;關鍵是與項目的規模和發布節奏相匹配。阿里協同研發平臺在經過眾多實踐歷練后&#xff0c;總結出了一套獨創的分支管理方法&#xff1a;AoneFlow&#xff0c;通過兼備靈活高效與簡單實用的流程…

WIN10系統 截圖或者某些程序時屏幕會自動放大怎么辦

右擊這個應用程序&#xff0c;兼容性&#xff0c;以兼容模式運行&#xff0c;同時勾選高DPI設置時禁止顯示縮放即可

css背景圖片添加url_CSS背景圖片–如何向您的Div添加圖片URL

css背景圖片添加urlSay you want to put an image or two on a webpage. One way is to use the background-image CSS property. 假設您要在網頁上放置一兩個圖片。 一種方法是使用background-image CSS屬性。 This property applies one or more background images to an el…

golang基礎01

1.環境變量&#xff1a;go env//代碼目錄和第三方庫文件set GOPATHC:\Users\hanxiaodong\go//go安裝目錄set GOROOTC:\Gopath里要配置&#xff1a;goroot/bin;和gopath/bin; gopath目錄下三個文件夾&#xff1a;pkg&#xff1a;編譯好的庫文件 .a 文件bin&#xff1a;可執行文件…

hugo 能做web開發嗎_如何自托管Hugo Web應用

hugo 能做web開發嗎After hosting with Netlify for a few years, I decided to head back to self hosting. There are a few reasons for that, but the main reasoning was that I had more control over how things worked. 在Netlify托管了幾年之后&#xff0c;我決定回到…

資源 | 深度學習課程入門與介紹

【1】Andrew NG Deep Learning.ai http://deeplearning.ai/網易云課堂&#xff08;中文字幕&#xff09;&#xff1a;http://mooc.study.163.com/smartSpec/detail/1001319001.htm推薦理由&#xff1a;Andrew Ng老師是講課的能手&#xff0c;很多人認識他是從Stanford的經典《機…

PostCSS 以及 cssnext語法

本文是對近兩天學習postcss的總結&#xff0c;在這里分享給大家。 如有錯誤&#xff0c;還請指正&#xff01; 什么是postcss postcss 一種對css編譯的工具&#xff0c;類似babel對js的處理&#xff0c;常見的功能如&#xff1a; 1 . 使用下一代css語法 2 . 自動補全瀏覽器前綴…

5187. 收集足夠蘋果的最小花園周長

給你一個用無限二維網格表示的花園&#xff0c;每一個 整數坐標處都有一棵蘋果樹。整數坐標 (i, j) 處的蘋果樹有 |i| |j| 個蘋果。 你將會買下正中心坐標是 (0, 0) 的一塊 正方形土地 &#xff0c;且每條邊都與兩條坐標軸之一平行。 給你一個整數 neededApples &#xff0c…

虛擬機 VMware Workstation12 安裝OS X 系統

Windows下虛擬機安裝Mac OS X —– VMware Workstation12安裝Mac OS X 10.11本文即將介紹WIN虛擬MAC的教程。完整詳細教程&#xff08;包含安裝中的一些問題&#xff09;【并且適用其他mac os x版本】Windows下 VM12虛擬機安裝OS X 10.11(詳細教程) 工具/原料 Mac OS X 10.11 鏡…

aws dynamodb_DynamoDB備忘單–您需要了解的有關2020 AWS認證開發人員助理認證的Amazon Dynamo DB的所有信息

aws dynamodbThe emergence of cloud services has changed the way we build web-applications. This in turn has changed the responsibilities of a Web Developer. 云服務的出現改變了我們構建Web應用程序的方式。 反過來&#xff0c;這改變了Web開發人員的職責。 We use…