leetcode刷題筆記 264題 醜數 II
阿新 • • 發佈:2020-11-05
leetcode刷題筆記 264題 醜數 II
源地址:264. 醜數 II
問題描述:
編寫一個程式,找出第 n 個醜數。
醜數就是質因數只包含 2, 3, 5 的正整數。
示例:
輸入: n = 10
輸出: 12
解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個醜數。
說明:1 是醜數。
n 不超過1690。
//通過分別構建2為基礎的醜數集合,3為基礎的醜數集合,5為基礎的醜數集合,進行多路歸併排序 import scala.collection.mutable object Solution { def nthUglyNumber(n: Int): Int = { val nums = mutable.ListBuffer[Int]() nums.append(1) var i = 0 var j = 0 var k = 0 while (nums.length < n) { val temp = math.min(nums(i)*2, math.min(nums(j)*3, nums(k)*5)) if (nums(i)*2 == temp) i += 1 if (nums(j)*3 == temp) j += 1 if (nums(k)*5 == temp) k += 1 nums.append(temp) } //println(nums.mkString(" ")) return nums.last } }