題目:
我們把只包含因子2,3和5的數稱為醜數(ugly number),求從小到大的順序第n的醜數,例如6,8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當作第1個醜數
第一種解法:最簡單粗暴野蠻也是效率最低的一種解法是:
public
class solution
return i;
}public boolean isugly(int n)
}
第二種解法:空間換時間解法,假設乙個陣列儲存好已經排序好的醜數,那麼乙個新的醜數的產生必定是陣列裡面的數乘以2,3或者乘以5,於是有了第二種解法
第二種解法:
public
class
solution
int result = a[index-1];
return result;
}public
int min(int a,int b,int c)
}
返回第n個醜數
把只包含質因子2 3和5的數稱作醜數 ugly number 例如 2,3,4,5,6,8,9,10,12,15,等,習慣上我們把1當做是第乙個醜數。寫乙個高效演算法,返回第n個醜數。解法1 判斷某個數是否為醜數,連續找到第n個醜數 include using namespace std bool ...
找到第N個醜數
把只包含因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。找到第n個醜數 方法1 存放num之前所有元素是否是醜數的flag int getuglynumber solution in...
求第N個醜數
原問題描述 把只包含質因子2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含質因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第n個醜數。這個題不是很難,基本上看完題就能想出解法,但是要想出時間複雜度為o n 的解法還是有點難度的。我最開始的解法時...