279 完全平方數

2021-09-23 20:45:54 字數 1034 閱讀 5088

給定正整數 n,找到若干個完全平方數(比如1, 4, 9, 16, ...)使得它們的和等於n。你需要讓組成和的完全平方數的個數最少。

示例 1:

輸入:n =12輸出:3解釋:12 = 4 + 4 + 4.
示例 2:

輸入:n =13輸出:2解釋:13 = 4 + 9.
動態規劃

class solution 

}return dp[n];

}};

使用佇列輔助進行廣度優先搜尋。

class solution }}

steps += 1; //當前移動了一步, 相當於對當前的每乙個可能的平方和數都判斷了一遍,但是還可以減去平方和數後繼續判斷

}return 0;

}};

使用回溯法(深度優先)。從n的平方根到1進行搜尋,直到當前的n為零。

class solution 

//sqrt(reminanum)將reminanum開方

for (int num = sqrt(reminanum); num > 0; --num)

} }public:

int numsquares(int n)

};

leetcode 完全平方數(深度優先搜尋、廣度優先搜尋、動態規劃)

279 完全平方數

給定正整數 n,找到若干個完全平方數 比如 1,4,9,16,使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。示例 1 輸入 n 12 輸出 3 解釋 12 4 4 4.示例 2 輸入 n 13 輸出 2 解釋 13 4 9.其中dp i 表示正整數i最少能由多個完全平方數組成,那麼我們...

279 完全平方數

include include include using namespace std class solution return res int main 把這個問題轉換為乙個無權圖找最短路徑以後,因為有很多路徑可以到達乙個同乙個節點 12 1 11 4 7 12 4 8 1 7 比如12就可以通...

279 完全平方數

給定正整數 n,找到若干個完全平方數 比如 1,4,9,16,使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。示例 1 輸入 n 12 輸出 3 解釋 12 4 4 4.示例 2 輸入 n 13 輸出 2 解釋 13 4 9.令dp i 為組成和i的完全平方數的最小個數 那麼,有i j ...