超級醜數 用堆查詢解決

2022-06-24 02:33:09 字數 1182 閱讀 1744

利用堆排序很容易進行查詢

質數又稱素數。乙個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。

質因數(素因數或質因子)在數論裡是指能整除給定正整數的質數。除了1以外,兩個沒有其他共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數(包括1本身)都是互質

把只包含質因子2、3和5的數稱作醜數(ugly number)。例如6、8都是醜數,但7.14不是,因為它們包含質因子7。 習慣上我們把1當做是第乙個醜數

class ugly 

getall ()

}// k===l有兩種情況,1.壓根沒有質因數,2.質因數都在指定列表中

if (k === l)

} else

}i++

}// 返回醜數陣列

return res[this.n - 1]

} // 計算指定正整數n的質因數

static getprimies (n)

}return arr

}return prime(n)

}}class heap

sort () else

return iarr

}} find (val, i = 0) else if (val === arr[i]) else

} static swap (arr, a, b)

// 交換

let c = arr[a]

arr[a] = arr[b]

arr[b] = c

} // 構建最大堆

static maxheapify (arr, i, size)

// 右節點額最大值比較

if (r <= size && arr[r] > arr[largest])

if (largest !== i)

}}export default ugly

export

超級醜數 用查詢的api解決

質數又稱素數。乙個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數 否則稱為合數。質因數 素因數或質因子 在數論裡是指能整除給定正整數的質數。除了1以外,兩個沒有其他共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數 包括1本身 都是互質 把只包含質因子2 3和5的數稱作...

leetcode超級醜數

1.n個指標 設primes.size n,則設定n個指標,初始為0,分別指向結果陣列中有資格與primes 0 primes n 1 相乘的元素的下標,取最小值,且最小值對應的指標的值加1,如下 class solution public int nthsuperuglynumber int n,...

313 超級醜數

題目描述 編寫一段程式來查詢第 n 個超級醜數。超級醜數是指其所有質因數都是長度為 k 的質數列表 primes 中的正整數。示例 輸入 n 12,primes 2,7,13,19 輸出 32 解釋 給定長度為 4 的質數列表 primes 2,7,13,19 前 12 個超級醜數序列為 1,2,4...