这段时间重温一下C++编程
279. 完全平方数
动态规划 dp[i] = dp[i-j^2] +1
class Solution {
public:
int numSquares(int n) {
vector<int> dp(n+1,0);
for(int i=1;i<=n;i++){
int tmp =9999;
for (int j = 1;j*j<=i;j++)
{
// cout<<dp[i-j*j]<<endl;
tmp = min(tmp,dp[i-j*j]);
}
dp[i] = tmp+1;
}
return dp[n];
}
};
57. 插入区间
通过比较开始端和结束端 来找到所需要被覆盖的区间,然后将其覆盖,
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
vector<vector<int>> res;
int i = 0,n = intervals.size();
while (i<n && intervals[i][1]<newInterval[0]){
res.push_back(intervals[i]);
i++;
}
while(i <n && intervals[i][0]<=newInterval[1]){
newInterval[0] = min(newInterval[0],intervals[i][0]);
newInterval[1] =max(newInterval[1],intervals[i][1]);
i++;
}
res.push_back(newInterval);
while(i<n) res.push_back(intervals[i++]);
return res ;
}
};