日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

丑數

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

題目

把只包括因子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); } }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品成人一区二区 | 日韩一区二区三区免费视频 | 精品在线一区二区 | 日产精品久久久一区二区 | 欧美 日韩 国产 在线 | 日韩视频中文字幕 | 91色网站| 91小视频在线观看 | 男女国产网站 | 不卡中文一区 | 日韩国产一区二区三区 | 亚洲成人一区二区 | 国产福利久久 | 国产精品视频免费看 | 日本一区二区视频在线 | 免费福利视频一区二区三区 | 久久成人一区二区 | 国产黄色网 | 91九色网 | 一区日韩 | 国产天堂av | 国产中文字幕一区 | 黄色电影免费提供 | 美女一区二区三区 | 国产成人精品一区二区三区 | 99国产精品久久 | 精品国产髙清在线看国产毛片 | 欧美亚洲三级 | 人人干人人干 | 国内av网站 | 国产精品一区二区视频 | 爱爱视频在线播放 | 亚洲精品视频免费观看 | 国产 欧美 日韩 一区 | 中文字幕一区二区三区在线视频 | 欧美精品黄 | 日韩av综合在线 | 色婷婷999 | 亚洲欧洲成人精品av97 | 激情四射综合网 | 一区二区三区欧美日韩 |