问题标题: 酷町堂:震惊!合肥一小伙竟偷偷干这事......

0
0
已解决
欧阳语聪
欧阳语聪
资深守护
资深守护

1184咋做?我是白嫖怪!

----------------------我是分割线-------------------------

什么?你问我题目?偷偷刷题,行了吧。


0
0
0
蔡乐毅
蔡乐毅
高级光能
高级光能

先排序,再……

  • int i=1,j=n;
  • while(i<=j){
    • if(a[i]+a[j]<=w){
      •  i++;
      • j--;
    • }
    • else{
      • j--;
    • }
    • cnt++;
  • }
  • 望采纳
0
张恩泽
张恩泽
高级天翼
高级天翼

贪心,先排序,再模拟:

输入a数组后按sort排序,直接从小到大排就可以了,记得加头文件#include <alorithm>

定义 laft = 1, right = n;
while (laft <= right) {
    计数++
    如果 (a [ laft ] + a [ right ] <= m) {
        laft ++;
        right --;
    }
    否则 {
        right --;
    }
}
输出计数器

 

我要回答