0 点赞 评论 收藏
分享
抢小孩子糖吃:目测空间复杂度为 n
0 点赞 评论 收藏
分享
小夕学算法(全网同名):我的题解,动画、26张手绘图片,清晰易懂https://blog.nowcoder.net/n/c0d4560b127c4c549e3420884b18ba51
0 点赞 评论 收藏
分享
sonicsniper:为什么stack.size()需要<=0啊,直接=0不可以吗
0 点赞 评论 收藏
分享
我是真的菜得1P:思路和大佬一样,只是那个在list里面判断不用那么复杂感觉,直接i<list.size()-1即可。
for(int i=0;i<list.size()-1;i++){
if(list.get(i)==node){
return list.get(i+1);
}
}
0 点赞 评论 收藏
分享
aidisen:为什么 for (int i = 0; i <= in.length; i++)语句里面需要i<=in.length ?
0 点赞 评论 收藏
分享
Mr张巍瀚:系统的"栈"很形象
0 点赞 评论 收藏
分享
是瑶瑶公主呀:因为你return的是string呀,你要用一个新的String变量接收replace后的再返回
0 点赞 评论 收藏
分享
东东小朋友:没参加笔试, 看到题目顺手做下, 差不多就多重背包问题, 统计数量的话直接dp不优化应该也差不多. #include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> c(6);
vector<int> v{1, 5, 10, 20, 50, 100};
for (int i = 0; i < 6; i++) {
cin >> c[i];
}
int n;
cin >> n;
vector<int> cur(n + 1, 0);
vector<int> dp(n + 1, 0);
dp[0] = 0;
cur[0] = 1;
for (int i = 0; i < 6; i++) {
for (int j = n; j >= v[i]; j--) {
for (int k = 1; k <= c[i] && j - k * v[i] >= 0; k++) {
dp[j] += dp[j - k * v[i]] + k * cur[j - k * v[i]];
cur[j] += cur[j - k * v[i]];
}
}
}
cout << dp[n] << endl;
}
投递趋势科技等公司10个岗位 >
0 点赞 评论 收藏
分享
nobodyshome:我写了150行
投递趋势科技等公司10个岗位 >
0 点赞 评论 收藏
分享
BufanDeng:老哥从左下找分析里:
当 m < target,由于 m 已经是该行最大的元素,想要更大只有从列考虑,取值右移一位
当 m > target,由于 m 已经是该列最小的元素,想要更小只有从行考虑,取值上移一位
这是写反了吧
0 点赞 评论 收藏
分享
Micompaerodearmas:排序不对,不能确保输出的是第一个重复的数,有待改进
0 点赞 评论 收藏
分享
关注他的用户也关注了: