LeetCode 313. Super Ugly Number
2016-03-29 23:24
323 查看
思路
利用ugly,pointer,prime三个数组存储当前找到的所有ugly,同时存储下次可能是最小的数:算法实现
public int nthSuperUglyNumber(int n, int[] primes) { int[] pointer = new int[primes.length]; Arrays.fill(pointer, 0); int ugly[] = new int ; ugly[0] = 1; for(int i = 1; i < n; i++){ int min = Integer.MAX_VALUE; int minIndex = 0; for(int j = 0; j < primes.length; j++){ if(ugly[pointer[j]] * primes[j] < min){ min = ugly[pointer[j]] * primes[j]; minIndex = j; }else if(ugly[pointer[j]] * primes[j] == min){ pointer[j]++; } } ugly[i] = min; pointer[minIndex]++; } return ugly[n - 1]; }
相关文章推荐
- C++ STL 中lower_bound() 和 upper_bound()讲解
- 林小欣的every day
- UVa 839 Not so Mobile
- swift 的基本类型之字符串
- 用requests爬取百度搜索数据
- Struts2常用类方法归纳
- 林小欣的every day
- spring概念
- JAVA——程序流程控制——循环语句——for循环(打印三角形)
- 数据库连接池的工作机制
- hdu 1394 Minimum Inversion Number(这道题改日我要用线段树再做一次哟~)
- MySQL表类型
- ajax记录
- Android Volley完全解析(四),带你从源码的角度理解Volley
- 浏览器兼容笔记(1)
- Quicksum -SilverN
- Java位操作全面总结
- 【学习汇总】DIV水平居中
- [BZOJ1036][ZJOI2008]树的统计Count
- android开发之后端云bmob的使用