LeetCode 求完全平方和的最少個數

2021-10-10 18:24:02 字數 845 閱讀 7791

題目描述:

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

的完全平方數的個數達到最少。

示例 1:

input:n=12

output:3

說明:12=4+4+4

示例 2:

input:13

output:2

說明:13=4+9

解題思路:

這道題首先想到的是動態規劃,當n=1時,最少只需要1個完全平方數1即可。因此dp[i]:表示

完全平方和為i的最小個數初始狀態dp[i]均取最大值i,即1+1+1...+1,i個1;dp[0]=0

轉移方程:dp[i]=min(dp[i],dp[i-j*j]+1),其中,j是平方數,j=1~k,其中k*k要

保證<=i。簡而言之,完全平方數和為i的最大個數與(完全平方數和為i-j*j的最小個數+完全

平方和為j*j的最小個數)可以看到dp[j*j]是等於1的。

c++語言實現

#include #include #include using namespace std;

class solution

int numsquare()

}return dp[num];

}private:

const int num;

};int main(int argc,char* ar**)

} return dp[n]

}func min(x,y int)intelse

}func main()

CUDA 求平方和

include include include define data size 1048576 int data data size void generatenumbers int number,int size printf sum cpu d n sum system pause 要怎麼把計...

試題 演算法訓練 求平方和

試題 演算法訓練 求平方和 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 請用函式過載實現整型和浮點習型的兩個數的平方和計算 輸入格式 測試資料的輸入一定會滿足的格式。2 2 2行2列,第1行整型,第2行浮點型 輸出格式 要求使用者的輸出滿足的格式。2 1 2行1列,第1行整型...

求完全平方數

問題如下 乙個整數,它加上100後是乙個完全平方數,再加上268又是乙個完全平方數,請問該數是多少?解題如下 求完全平方數 from math import sqrt i 100 迴圈起點 i 100 0 active true 迴圈控制的標識 while active judge 1 sqrt i...