51,684
社区成员
发帖
与我相关
我的任务
分享1.
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int n=cost.size();
vector<int>f(n+1,0);
f[0]=cost[0],f[1]=cost[1];
for(int i=2;i<n;i++) {
f[i]=min(f[i-2],f[i-1])+cost[i];
}
return min(f[n-2],f[n-1]);
}
};
2.
class Solution {
public:
bool canJump(vector<int>& nums) {
int flag=nums[0],n=nums.size();
for(int i=0;i<n;i++) {
if(i>flag) return false;
flag=max(flag,i+nums[i]);
}
return true;
}
};
3.
class Solution {
public:
int minSteps(int n) {
int f[1010][1010];
memset(f,0x3f,sizeof f);
f[1][0]=0,f[1][1]=1;
for(int i=2;i<=n;i++) {
int minn=0x3f3f3f3f;
for(int j=0;j<=i/2;j++) {
f[i][j]=f[i-j][j]+1;
minn=min(minn,f[i][j]);
}
f[i][i]=minn+1;
}
int ans=0x3f3f3f3f;
for(int i=0;i<=n;i++) ans=min(ans,f[n][i]);
return ans;
}
};
4.
void solve() {
cin>>n>>k;
if(k==0||k==n) {
cout<<"0 0"<<endl;
}
else {
cout<<1<<' '<<min(k*2,n-k)<<endl;
}
}