笔试题(贪心)[通俗易懂]

笔试题(贪心)[通俗易懂]题解多余的数字每次都往左边分配,每次都分配剩余的再向右分配,向右分配不足的需要再从右边多余的数组分配过来,所以就搬动了2次#include<bits/stdc++.h>using namespace std;const long long N = 1e5 + 10;int a[N];int main(){ int n,sum = 0; cin>>n; for(int i = 0;i < n;i ++)cin>>a[i],sum..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述
在这里插入图片描述
题解
多余的数字每次都往左边分配,每次都分配剩余的再向右分配,向右分配不足的需要再从右边多余的数组分配过来,所以就搬动了2次

#include<bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 10;
int a[N];
int main(){ 
   
    int n,sum = 0;
    cin>>n;
    for(int i = 0;i < n;i ++)cin>>a[i],sum += a[i];
    int len = sum / n;
    int now = 0;
    int res = 0;
    for(int i = 0;i < n;i ++){ 
   
        if(a[i] < len){ 
   
            res ++;
            if(now > 0 && now - a[i] < 0)res ++;
            now -= a[i];
        }
        else if(a[i] > len){ 
   
            now += a[i];
        }
        else if(a[i] == len){ 
   
            if(now != 0)res ++;
        }
    }
    cout<<res<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168657.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月8日 下午7:00
下一篇 2022年8月8日 下午7:16


相关推荐

  • 计算机 原码、反码、补码(相互转化)

    计算机 原码、反码、补码(相互转化)一 基本概念在计算机系统中 数值一律用补码来表示和存储 原因在于 使用补码 可以将符号位和数值域统一处理 同时 加法和减法也可以用补码统一处理 此外 补码与原码相互转换 其运算过程是相同的 不需要额外的硬件电路 原码 二进制表示 二进制首位是符号位 0 为正 1 为负 反码 正数 反码和原码一样 负数 符号位不变 其他各位取反 补码 正数 补码和原码一样 负数 反码末位加 1 有进位则进位 但不改变符号位二 举个例子 假设是字节长度为 8 位 正数 1

    2026年3月17日
    2
  • leetcode 三数之和_leetcode数组

    leetcode 三数之和_leetcode数组原题链接给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[] 提示:0 <= nums.length <= 300

    2022年8月9日
    3
  • tcptraceroute命令可以绕过最常见的防火墙过滤器「建议收藏」

    tcptraceroute命令可以绕过最常见的防火墙过滤器「建议收藏」问:我的ISP阻止了ICMPECHO请求,我不能使用traceroute命令,有什么方法可以使用端口转发或类似方法发送traceroute?答:tcptraceroute命令可以绕过最常见的防火墙过滤器。基本上,traceroute会发送TTL为1的UDP(端口33434至33523端口)或ICMPECHO数据包,并递增TTL,直到到达目标为止。但是,出于安全原因,许多ISP/WSP(网络托管服务提供商)会阻止某些UDP(甚至TCP)和ICMP端口。使用tcptracerou

    2022年6月20日
    48
  • 10个在线接收国内外手机验证码的免费网站

    10个在线接收国内外手机验证码的免费网站https zhuanlan zhihu com p

    2026年3月17日
    2
  • 大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命

    大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命

    2026年3月13日
    3
  • 关于Google FREE Webhosting !的欺诈邮件 200∞「建议收藏」

    关于Google FREE Webhosting !的欺诈邮件 200∞「建议收藏」早上收到了一封貌似正常的邮件:Hello,DearGmailcustomerAfterourfreeemailservicesweofferyoutosingupforourfreehostingservices.Thisservicecurrentlyisinbetatest.Andwechooseyoutotestthis…

    2022年10月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号