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

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
盡可能取半徑最大值優先畫圓。
以下算法思路有錯誤,忽略
每個矩形內畫一個圓后
必定有4個角落空間可以繼續畫圓
也有可能存在矩形的
長-寬
的剩余的空間繼續畫圓(如果是正方形,則此條不存在)
思路是每次畫圓后,根據當前的長,寬
計算出上面2條可能出現的長,寬,半徑
,放入優先隊列
,接著每次取出最大的半徑值繼續畫圓,直到count
為0
添加回答
舉報
0/150
提交
取消