全部评论
开局半小时整完选择+第一题,然后磨了一个小时,第一题还是27%,属实不知道哪里有问题,把能举的例子全在用例里举了一遍(不会11*12这种相乘也算吧,那我属实没想到),第二题dfs超时=v=,和排序了直接倒着选一样,都只能过18%(第二题铁动态规划,很熟,但是就是不会动态规划哎嘿)
第一题,符合要求的一定可以化为x11+y111 又有111=11x10+1 故设数字n/10=a n%10=b 如果 a/10>=b,则该数一定符合要求
有无大佬说说思路😀
插眼
第一题有没有AC代码参考下,不知道为啥只通过18😂
好难.........
好难+10086
第一题ac了 第二题没顶住 像背包?
我前端的,第二题也是小明不喜欢1,第一题是一个背包问题,问问后端第二题是啥?
AC代码: void CountNumbers() { int n; cin >> n; vector<long long>ones = { 11, 111}; vector<long long >nums(n); int cnt = 0; for (int i = 0; i < n; ++i) { cin >> nums[i]; if (nums[i] % 11 == 0 || nums[i] % 111 == 0) { cnt++; continue; } long long b = nums[i] % 11; int mul = b; while (true) { if (nums[i] - 111 * mul > 0) { if ((nums[i] - 111 * mul) % 11 == 0) { cnt++; break; } mul += 11; } else break; } } cout << cnt << endl; } void maxCountGoods() { int n; cin >> n; vector<long long>happy_value(n); for (int i = 0; i < n; ++i) { cin >> happy_value[i]; } priority_queue<long long,vector<long long>, greater<long long> >qu; long long now = 0, cnt = 0; for (int i = 0; i < n; ++i) { now += happy_value[i]; cnt++; if (happy_value[i] < 0) qu.push(happy_value[i]); while(now < 0 && !qu.empty()) { now -= qu.top(); qu.pop(); cnt--; } } cout << cnt << endl; }
第一题感觉和LeetCode518很相似。。。。。。
相关推荐
投递快手等公司10个岗位 >
点赞 评论 收藏
分享