'''
#include<bits/stdc++.h>
using namespace std;
vector<int> memo;
class Solution{
public:
int minimum(int a , int b){
if(a>b) return b;
return a;
}
public:
int MinSquares(int n , vector<int> memo)
{
if(n<= 3){
return n;
}
if(memo[n]>-1) {
return memo[n];
}
int m = n ;
for(int i = 1 ; n-(i*i)>=0; i++){
m = minimum(m, MinSquares(n - i*i , memo) + 1 );
}
memo[n]=m;
return memo[n];
}
};
// { Driver Code Starts.
int main(){
int tc;
cin >> tc;
while(tc--){
int n;
cin >> n;
Solution ob;
vector<int> memo;
memo.assign(n+1 ,-1);
memo[0]=0;
memo[1]=1;
int ans = ob.MinSquares(n , memo);
cout << ans <<"\n";
}
return 0;
}
'''
- I know that recurrence relation and tried solving it with using pen and paper.
when trying output 100 it taking much more time than usual . I have spend at least 4 hour why there is no error in syntax and it is giving result for less than 100 . please help.
Aucun commentaire:
Enregistrer un commentaire