面试题 17.09. 第 k 个数
题意
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。
示例 1:
输入: k = 5
输出: 9
注意大数问题
题解
class Solution {
public int getKthMagicNumber(int k) {
Set<Long> set = new HashSet<Long>();
PriorityQueue<Long> queue = new PriorityQueue<Long>();
queue.offer(1L);
long t=0;
while(!queue.isEmpty()&&k>0){
t = queue.poll();
k--;
if(!set.contains(t*3)) {queue.offer(t*3);set.add(t*3);}
if(!set.contains(t*5)) {queue.offer(t*5);set.add(t*5);}
if(!set.contains(t*7)) {queue.offer(t*7);set.add(t*7);}
}
return (int)t;
}
}

...全文
相关推荐
变分模态分解(VMD)通过中心频率确定分解个数K
VMD研究确定中心频率以及分类的模态数,亲测可用!!!
java基础面试题最小的K个数
java基础面试题最小的K个数提取方式是百度网盘分享地址
09S011A05K.can17
09S011A05K.can17!!!!!!!!!!!!!!!!
Python实现从N个数中找到最大的K个数
提出问题: 如何在某集合里面找出最大或最小的K个元素。 解决思路: 找出最大或最下的K个元素,可以使用Python库中的heapq模块,该模块提供两个函数nlargest()求最大K个和nsmallest()求最小K个。 下面我们举例说明: import heapq nums=[12,-9,-3,32,9,56,23,0,11,34] print(heapq.nlargest(4,nums)) #-->最大的4个 print(heapq.nsmallest(4,nums)) #-->最小的4个 运行结果: [56, 34, 32, 23] [-9, -3, 0, 9] 分析下,nlar
实验4-8 计算k以内能被13或17整除的自然数之和_计算k以内能被13或17整除的自然数之和_K._
c语言习题之一,计算k以内能被13或17整除的自然数之和。在原题的基础上,本题增加了一个条件:即计算复合条件的最大的十个数之和,如果少于十个数,则计算符合条件的数之和


