leetcodecl
阿新 • • 發佈:2018-12-12
題目描述
把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。
class Solution { public: int minThree(int a, int b, int c) { return a<b?min(a,c):min(b,c); } int GetUglyNumber_Solution(int index) { int pos=0,pos1=0,pos2=0; vector<int> ans; ans.push_back(1); while(ans.size()<index) { int flag = minThree(2*ans[pos],3*ans[pos1],5*ans[pos2]); ans.push_back(flag); if(flag == 2*ans[pos]) pos++; if(flag==3*ans[pos1]) pos1++; if(flag==5*ans[pos1]) pos2++; } return ans[index-1]; } };