java 求解第n個醜數

2021-07-10 19:01:46 字數 528 閱讀 1448

題目:

我們把只包含因子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 的解法還是有點難度的。我最開始的解法時...