LintCode-丑数】的更多相关文章

题目 丑数 设计一个算法,找出只含素因子3,5,7 的第 k 大的数. 符合条件的数如:3,5,7,9,15...... 样例 如果k=4, 返回 9 挑战 要求时间复杂度为O(nlogn)或者O(n) 解题 法一:直接暴力,逐次判断一个数是不是丑数 下面只对其中的奇数判断是否是丑数,加不加奇数都超时. class Solution { /** * @param k: The number k. * @return: The kth prime number as description. */…
丑数 设计一个算法,找出只含素因子3,5,7 的第 k大的数. 符合条件的数如:3,5,7,9,15...... 您在真实的面试中是否遇到过这个题? Yes 样例 如果k=4, 返回 9 挑战 要求时间复杂度为O(nlogn)或者O(n) import java.util.Queue; import java.util.LinkedList; class Solution { /** * @param k: The number k. * @return: The kth prime numbe…
题目链接:http://www.lintcode.com/zh-cn/problem/ugly-number-ii/ 题目描述:设计一个算法,找出只含素因子2,3,5 的第 n 大的数.符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 算法分析:这其实是数学知识.只含素因数2,3,5等价于如下4条所示: 如果一个数能够被2整除,那么让他继续除以2: 如果一个数能够被3整除,那么让他继续除以3: 如果一个数能够被5整除,那么让他继续除以5: 如果最后这个数变为1,…
丑数 II 设计一个算法,找出只含素因子2,3,5 的第 n 大的数. 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 注意事项 我们可以认为1也是一个丑数 样例 如果n = 9, 返回 10 挑战 要求时间复杂度为O(nlogn)或者O(n) 标签 LintCode 版权所有 优先队列 code class Solution { public: /* * @param n an integer * @return the nth prime number a…
原题网址:http://www.lintcode.com/zh-cn/problem/ugly-number-ii/ 设计一个算法,找出只含素因子2,3,5 的第 n 小的数. 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12... 注意事项 我们可以认为1也是一个丑数   样例 如果n = 9, 返回 10 挑战 要求时间复杂度为O(nlogn)或者O(n) #include <iostream> #include <vector> #include…
1246 丑数 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它).这是个对于一个输入的S的丑数集合.注意:我们不认为1 是一个丑数.你的工作是对于输入的集合S去寻找集合中的第N个丑数.longi…
一.题目:丑数 题目:我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做第一个丑数. 二.两种解决方案 2.1 一一遍历法:时间效率低下 使用遍历法求第k个丑数,从1开始遍历,如果是丑数则count++,直到count=k为止.那么如何判断丑数呢?根据丑数的定义,丑数只有2,3,5这三个因子,那么我们就拿数字除以这三个因子.具体算法如下: Step1.如果一个数能够被2整除,…
问题描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路1:(显然是比较耗时的) 直接去判断每个整数是不是丑数,然后找到第N个小的数.(牛客网提交超时) public int GetUglyNumber_Solution(int index) { if(index <= 0){ return 0; } int number = 0; int found =…
枚举大范围数据..暴力检查题目条件 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <map> using namespace std; vector<int> Prime; typedef long long ll; bool isPrime(ll x){ ll i; ) return false; ;i*i&…
[题目] 我们把只包含质因子2.3和5的数称作丑数(Ugly Number),例如:2,3,4,5,6,8,9,10,12,15,等,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑数. [分析] 这是一道在网络上广为流传的面试题,据说google曾经采用过这道题. 所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0.根据丑数的定义,丑数只能被2.3和5整除.也就是说如果一个数如果它能被2整除,我们把它连续除以2:如果能被3整除,就连续除以3:如果能被…
hdu1058 题意:当一个数只有2.3.5.7这四种质因数时(也可以一种都没有或只有其中几种),这个数就是丑数,输出第 n 个丑数是多少: 其实并没有发现hdu把这道题放在 dp 专题里的意图,我的思路就是预处理出丑数数组,然后读入 n 就直接输出第 n 个丑数.我自己又一种想法,询问翔神之后又学到了另一种做法. 我自己的生成数组的方法是:数组的第一个元素定为1,然后用优先队列,首先将2,3,5,7放入优先队列,每次从队列中取出最小的一个数,将它放入数组中,然后分别将它乘上2,3,5,7后放入…
[题目]把只包含因子2.3和5的数称作丑数(Ugly Number). * 例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 解法一:此解提交运行超时,不推荐. package com.exe11.offer; /** * [题目]把只包含因子2.3和5的数称作丑数(Ugly Number). * 例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. * @auth…
P2723 丑数 Humble Numbers 52通过 138提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包括,p1.p1*p2.p1*p1.p1*p2*p3...(还有其它).该集合被称为S集合的"丑数集合".注意:我们认为1不是一个丑数. 题目描述 你的工作是对于输入的集…
只包含因子2.3.5的数称作丑数. #include <iostream> #include <vector> using namespace std; int GetUglyNumber(int n) { ) ; vector<); UglyNum[] = ; vector<int>::iterator it2 = UglyNum.begin(); vector<int>::iterator it3 = UglyNum.begin(); vector…
题目: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路: 1.逐个判断 逐个判断每个整数是不是丑数.根据丑数的定义,丑数只能被2,3,5整除,也就是说,如果一个数能被2整除,连续除以2,如果能被3整除,连续除以3,如果能被5整除,连续除以5,如果最后得到1,那么这个数就是丑数,否则就不是. 2.创建数组保存已经找到的丑数 第一种方法效率比较低,因为该方法对每个…
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<vector> using namespace std; class Solution { public: int GetUglyNumber_Solution(int index) { int Max = 0;//记录最大丑数 int num = 0; vector<…
题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 输入: 输入包括一个整数N(1<=N<=1500). 输出: 可能有多组测试数据,对于每组数据,输出第N个丑数. 样例输入: 样例输出: 解题思路: 最简单的思路是,从1到大数,每个数都检测一遍是否是丑数,检测方法可以考虑 int ugly(int number){ == ){ ); } == ){ );…
题目地址:http://ac.jobdu.com/problem.php?pid=1214 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 输入: 输入包括一个整数N(1<=N<=1500). 输出: 可能有多组测试数据,对于每组数据, 输出第N个丑数. 样例输入: 3 样例输出: 3 #include <stdio.h> int min…
由于思维的惯性,用了queue.后来发现一要注意要用集合判重,二是每次往queue里放的多,后来溢出了,要用long long.但这样要用数组,集合,队列,内存多.效率是O(n*logn)的. #include <iostream> #include <algorithm> #include <memory.h> #include <vector> #include <queue> #include <set> #include &l…
题目:http://acm.timus.ru/problem.aspx?space=1&num=1748 题意:求n范围内约数个数最多的那个数. Roughly speaking, for a number to be highly composite it has to have prime factors as small as possible, but not too many of the same. If we decompose a number n in prime factor…
[描述] 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它).这是个对于一个输入的S的丑数集合.注意:我们不认为1 是一个丑数.你的工作是对于输入的集合S去寻找集合中的第N个丑数.longint(signed 32-bit)对于程序是足够的.   [格式] PROGRAM NAME: humble INPUT FORMAT:(file humble.in)   第…
题目: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路: 第一个丑数是1,此后保存3个下标:乘以2的数位置.乘以3的数位置.乘以5的数位置.每次比较由2.3.5衍生出来的丑数的大小,取最小的作为下一个丑数. 维护这3个下标:判断下一个丑数是由2.3还是5衍生的,那个数的下标位置前进1. 需要注意的是,下一个丑数可能是其中两个或三个数衍生的,比如在生成6时,2衍…
Save Princess 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Yesterday, the princess was kidnapped by a devil. The prince has to rescue our pretty princess.   "OK, if you want to save the beautiful princess, you must answer my questions correctly."the…
题目要求第n个丑数.所以对于中间结果不须要保存. def Humble(index): curHum = 1 M2 = 2; M3 = 3; M5 = 5 while index > 1: curHum = min(min(M2, M3), M5) while M2 <= curHum: M2 *= 2 while M3 <= curHum: M3 *= 3 while M5 <= curHum: M5 *= 5 index -= 1 return curHum…
题意:丑数就是质因子只有2,3,5 ,7,的数,另外1也是丑数.求第n(1=<n<=5842)个丑数,n=0,结束. 思路:.3.5或者7的结果(1除外).那么,现在最主要的问题是如何排序,而且使得求得数不重复. <阶梯式上升>:从ans[1]=1,p1=1,p2=1,p3=1,p4=1,分别用2,3,5,7乘ans[px],得到一个v(min),这个v就是下一个ans, 同时,对应的px++; 技巧:因为题目中是多组输入,所以没必要没输入一个数就把程序跑一遍,而且n有上限,索性用…
给定一个素数集合 S = { p[1],p[2],...,p[k] },大于 1 且素因子都属于 S 的数我们成为丑数(Humble Numbers or Ugly Numbers),记第 n 大的丑数为 h[n]. 算法 1: 一种最容易想到的方法当然就是从 2 开始一个一个的判断一个数是否为丑数.这种方法的复杂度约为 O( k * h[n]),铁定超时(如果你这样做而没有超时,请跟 tenshi 联系) 算法 2: 看来只有一个一个地主动生成丑数了 : 我最早做这题的时候,用的是一种比较烂的…
这个题是一个动态规划加优化的经典题 1246 丑数 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解 题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK},  来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它).这是个对于一个输入的S的丑数集合. 注意:我们不认为1 是一个丑数. 你的工作是对于输入的集合S去寻找集合中的第N…
Luogu2723丑数Humble Numbers 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包括,p1.p1*p2.p1*p1.p1*p2*p3...(还有其它).该集合被称为S集合的"丑数集合".注意:我们认为1不是一个丑数. 题目描述 你的工作是对于输入的集合S去寻找"丑数集合"中的第N个"丑数".所有答案可以用longint(32位整数…
首先我们先介绍一下普通的插排,就是我们现在一般写的那种,效率是O(n^2)的. 普通的插排基于的思想就是找位置,然后插入进去,其他在它后面的元素全部后移,下面是普通插排的代码: #include<iostream> #include<fstream> #include<stdio.h> using namespace std; ]; ]; int main(){ ios::sync_with_stdio(false); int n; cin>>n; ;i&l…