剛無(wú)聊想到一道算法題已知一個(gè)矩形的的長(zhǎng)寬和圓的個(gè)數(shù),求這里面圓的面積占比最大為多少?比如一個(gè)10*10的矩形,如果要求圓的個(gè)數(shù)為一,那么這個(gè)圓的直徑應(yīng)該就是10了,如果園的個(gè)數(shù)為2,那么這兩個(gè)圓的直徑可能一個(gè)10,另一個(gè)就是大圓的邊角了,或者兩個(gè)直徑都是5或者其他,但是需要里面圓占得面積比是最高的,所以兩個(gè)圓的直徑應(yīng)該是唯一的,同樣三個(gè)圓四個(gè)圓,或者矩形的長(zhǎng)寬比為3:2等等,那么里面的圓應(yīng)該怎樣的。函數(shù)//h:矩形的高,w:矩形的寬,count:圓的個(gè)數(shù)function fn(h,w,count) {
}
1 回答

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
盡可能取半徑最大值優(yōu)先畫圓。
以下算法思路有錯(cuò)誤,忽略
每個(gè)矩形內(nèi)畫一個(gè)圓后
必定有4個(gè)角落空間可以繼續(xù)畫圓
也有可能存在矩形的
長(zhǎng)-寬
的剩余的空間繼續(xù)畫圓(如果是正方形,則此條不存在)
思路是每次畫圓后,根據(jù)當(dāng)前的長(zhǎng),寬
計(jì)算出上面2條可能出現(xiàn)的長(zhǎng),寬,半徑
,放入優(yōu)先隊(duì)列
,接著每次取出最大的半徑值繼續(xù)畫圓,直到count
為0
添加回答
舉報(bào)
0/150
提交
取消