還記得童話《賣火柴的小女孩》嗎?現在,你知道小女孩有多少根火柴,請找出一種能使用所有火柴拼成乙個正方形的方法。不能折斷火柴,可以把火柴連線起來,並且每根火柴都要用到。
輸入為小女孩擁有火柴的數目,每根火柴用其長度表示。輸出即為是否能用所有的火柴拼成正方形。
示例 1:
輸入: [1,1,2,2,2]
輸出: true
解釋: 能拼成乙個邊長為2的正方形,每邊兩根火柴。
示例 2:
輸入: [3,3,3,3,4]
輸出: false
解釋: 不能用所有火柴拼成乙個正方形。
用回溯的思想,嘗試把火柴放進四個邊上。
class solution
int sum=0;
for(int i=0;i& nums,int target,int bucket)
for(int j=0;j<4;j++)
bucket[j]+=nums[i]; //放在j桶中
LeetCode 473 火柴拼正方形
還記得童話 賣火柴的小女孩 嗎?現在,你知道小女孩有多少根火柴,請找出一種能使用所有火柴拼成乙個正方形的方法。不能折斷火柴,可以把火柴連線起來,並且每根火柴都要用到。輸入為小女孩擁有火柴的數目,每根火柴用其長度表示。輸出即為是否能用所有的火柴拼成正方形 我看到題目,很快就想到了等分k份陣列這道題目....
遞迴 LeetCode473 火柴拼正方形
回溯法的求解過程實質上是乙個先序遍歷一棵狀態樹的過程,只是這棵樹不是遍歷前預先建立的,而是隱含在遍歷的過程中。遞迴題的解法 首先把題目的決策樹畫出來,樹的層就是for迴圈,樹的深度就是要遞迴的引數i。畫出決策樹後,找規律,進行剪枝。e.g.輸入 1,1,2,2,2 放小球問題,總共四個盒子,每個數從...
473 火柴拼正方形
還記得童話 賣火柴的小女孩 嗎?現在,你知道小女孩有多少根火柴,請找出一種能使用所有火柴拼成乙個正方形的方法。不能折斷火柴,可以把火柴連線起來,並且每根火柴都要用到。輸入為小女孩擁有火柴的數目,每根火柴用其長度表示。輸出即為是否能用所有的火柴拼成正方形。示例 1 輸入 1,1,2,2,2 輸出 tr...