Contents
Problem
判斷給出的棍子長度,可否連成正方形(每根都要用且不能折斷棍子)。
Solution
主要就是做回溯法,並提早排除不可能的。
一開始先排序由長的棍子開始組,可以減少回溯次數。
計算出正方形單邊的長度後,回溯時,只要長度超過單邊就可以不用進行遞迴了。每完成一個邊就將長度歸 0 ,重新開始組另一邊(只需要完成 3 個邊就可以確定了),一方面紀錄使用了那些棍子。
Code
1 |
|
判斷給出的棍子長度,可否連成正方形(每根都要用且不能折斷棍子)。
主要就是做回溯法,並提早排除不可能的。
一開始先排序由長的棍子開始組,可以減少回溯次數。
計算出正方形單邊的長度後,回溯時,只要長度超過單邊就可以不用進行遞迴了。每完成一個邊就將長度歸 0 ,重新開始組另一邊(只需要完成 3 個邊就可以確定了),一方面紀錄使用了那些棍子。
1 |
|