多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 丑數

丑數

來源:程序員人生   發布時間:2016-08-05 12:53:18 閱讀次數:2500次

題目

把只包括因子2、3和5的數稱作丑數(Ugly Number)。例如6、8都是丑數,但14不是,由于它包括因子7。 習慣上我們把1當作是第1個丑數。求按從小到大的順序的第N個丑數。

解題

暴力的不說了
1個數只能是2、3、5因子組成是丑數
丑數M,1定是由于前面的數乘以2、3、5后選取的最小值
所有可以定義1個數組寄存丑數,當時第i個丑數的時候,將前面的i⑴個丑數分別乘以2、3、5選取最小值(并且不是前面i⑴個丑數)就是第i個丑數
下面程序超時了

import java.util.*; public class Solution { public int GetUglyNumber_Solution(int index) { ArrayList<Integer> u = new ArrayList<Integer>(); u.add(0); u.add(1); if(index == 1) return u.get(index); int preIndex = 2; while(preIndex <= index){ int preU = Integer.MAX_VALUE; for(int i=1;i<u.size() ;i++){ int ui = u.get(i); if(!u.contains(ui*2)) preU = Math.min(preU,ui*2); if(!u.contains(ui*3)) preU = Math.min(preU,ui*3); if(!u.contains(ui*5)) preU = Math.min(preU,ui*5); } u.add(preU); preIndex ++; } return u.get(index); } }

判斷是不是已存在、找到最小值時間復雜度都是比較高的
在找下1個丑數時候,盡心了許多重復計算
計算M丑數,只與N有關,而與小于N的無關
而這個N應當包括:N2、N3、N5這3個數,我們只要找到這3個數就行了,這需要3個指針了,3個指針指向不同的N,選取這個N后,其指針后移1位
這個和書上講的很類似,我只是換了1個角度理解,重點是上面的方法讓我很容易想到了這個方法

import java.util.*; public class Solution { public int GetUglyNumber_Solution(int index) { ArrayList<Integer> u = new ArrayList<Integer>(); u.add(0); u.add(1); if(index == 1) return u.get(index); int i1 = 1; int i2 = 1; int i3 = 1; int preIndex = 2; while(preIndex <= index){ int preU = Integer.MAX_VALUE; int u1 = u.get(i1) * 2; int u2 = u.get(i2) * 3; int u3 = u.get(i3) * 5; preU = Math.min(preU,u1); preU = Math.min(preU,u2); preU = Math.min(preU,u3); if(preU == u1){ i1++; } if(preU == u2){ i2++; } if(preU == u3){ i3++; } u.add(preU); preIndex ++; } return u.get(index); } }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美1区二区三区公司 | 国产caob | 亚洲品质自拍视频 | 国产一区二区三区免费 | 日本一区二区免费在线观看 | wwwxxx欧美 | 一区二区三区亚洲视频 | 久久久久久久尹人综合网亚洲 | 国产欧美亚洲专区第一页 | 亚洲成a人在线播放www | 在线看黄网址 | 性欧美18~19sex高清播放 | jizz18欧美18| 亚洲精品欧美 | www成人在线观看 | 欧美日本一区二区 | 日韩欧国产精品一区综合无码 | 亚洲午夜久久久久中文字幕 | 久久中文字幕日韩精品 | 免费福利网站在线观看 | 九色九色九色在线综合888 | 国产成人精品aaaa视频一区 | 亚洲乱码一区二区三区在线观看 | 国产一级毛片外aaaa | 欧美淫| 国产亚洲精品自在久久不卡 | 久久天天躁狠狠躁夜夜不卡 | 毛片国产| 成人在线免费小视频 | 精品肉动漫资源在线观看 | 中文字幕日韩精品中文区 | 亚洲色图校园春色 | 国产精品免费播放 | 亚洲欧美国产毛片在线 | 狂野黑人性猛交xxxxxx | 伊人网在线免费视频 | 欧美亚洲高清日韩成人 | 免费看黄色的网址 | 视频一区二区在线 | 爱综合网| 国产福利在线观看精品 |