剑指Offer32 丑数
/*************************************************************************
> File Name: 32_UglyNumber.c
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年09月02日 星期五 12时29分59秒
************************************************************************/ #include <stdio.h>
#include <malloc.h> int isUgly(int number)
{
while (number % == )
number /= ;
while (number % == )
number /= ;
while (number % == )
number /= ; return (number==) ? : -;
} // 低效方法
int getUglyNumber1(int n)
{
if (n <= )
return -; int number = ;
while (n != )
{
++ number;
if (isUgly(number) == )
n --;
}
printf("%d\n", number);
return number;
} int MinOfThree(int a, int b, int c)
{
int minNum = a>b ? b : a;
minNum = minNum>c ? c : minNum;
return minNum;
} // 高效方法 空间换时间
int getUglyNumber2(int index)
{
if (index <= )
return index; int* ugly = (int*)malloc(sizeof(int) * index);
int i2 = ;
int i3 = ;
int i5 = ;
ugly[] = ; for (int i = ; i < index; ++i)
{
int temp2 = ugly[i2] * ;
int temp3 = ugly[i3] * ;
int temp5 = ugly[i5] * ; int minNum = MinOfThree(temp2, temp3, temp5);
ugly[i] = minNum; if (minNum == temp2)
i2 ++;
if (minNum == temp3)
i3 ++;
if (minNum == temp5)
i5 ++;
}
printf("%d\n", ugly[index - ]);
return ugly[index - ];
} int main()
{
getUglyNumber1();
getUglyNumber2();
}
剑指Offer32 丑数的更多相关文章
- 剑指Offer-32.丑数(C++/Java)
题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 分析: ...
- 剑指Offer——丑数
剑指Offer--丑数 前言 参照<剑指Offer>,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固. package cn.edu.ujn.offersword; i ...
- 剑指Offer丑数问题
这是剑指第一次卡死我的题……记录一下 首先看题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数 ...
- 剑指offer 丑数
思路:可以发现,每个丑数都是由以前的丑数得到.当前丑数一定是之前丑数能够得到的最小丑数. AC代码 class Solution { public: int GetUglyNumber_Solutio ...
- 剑指offer--33.丑数
本来用数组做标志位,但是测试数据有第1500个,859963392,惹不起哦 ------------------------------------------------------------- ...
- 用js刷剑指offer(丑数)
题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路 ...
- 剑指offer——丑数(c++)
题目描述只包含质因子2.3和5的数称作丑数(UglyNumber).例如6.8都是丑数,但14不是,因为它包含质因子7,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路:1.逐个 ...
- 剑指offer--32.把数组排成最小的数
用to_string()将整形转化为字符串,对字符串进行比较 --------------------------------------------------------------------- ...
- 剑指offer32:把数组排成最小的数
1 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 2 思路 ...
随机推荐
- sql表设计器的几个默认值
sql表设计器的几个默认值: 空字符串‘’(注意是单引号) 当前时间getdate() 逻辑值0或1 汉字或英文字符串需在前面加大写N,并用单引号引起如: N'已发货'
- sql 分组后 组内排名
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW ...
- nhibernate操作sql2008数据库(添加数据失败)
今天遇到一错误困了我一天,如此痛恨,遂记录于此: nhibernate框架+MVC模式搭的项目,添加数据时报错: "could not insert: [KXRMallManage.Mode ...
- C# 支付宝接口
生成URL链接 1using System; 2using System.Data; 3using System.Configuration; 4using System.Collectio ...
- webstorm 主题设置 皮肤设置
推荐个编辑器主题下载的一个网站. Color Themes 网址:http://color-themes.com [点这里直接跳转] 但是,只支持几个编辑器. 各种颜色搭配的主题,随你选择!我个 ...
- How to Use a Function or a Procedure as a Parameter in another Function
http://delphi.about.com/od/adptips2006/qt/functionasparam.htm In Delphi, procedural types (method po ...
- Java数据结构之树和二叉树(2)
从这里始将要继续进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来 ...
- 关于Web端即JS端编程
主要的技术是 HTML/JS/CSS/XML Web就是JS/DOM编程. 页面的数据来源: XML, JSON, HTML, Text, 第三方页面或者数据. 不一定都要跟服务器进行交互. JS端 ...
- 使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 【SSH三大框架】Hibernate基础第二篇:编写HibernateUtil工具类优化性能
相对于上一篇中的代码编写HibernateUtil类以提高程序的执行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domai ...