当前位置: 首页 > news >正文

华为OD机试-开放日活动-2022Q4 A卷-Py/Java/JS

某部门开展Family Day开放日活动,其中有个从桶里取球的游戏,游戏规则如下:有N个容量一样的小桶等距排开,且每个小桶都默认装了数量不等的小球,
每个小桶装的小球数量记录在数组 bucketBallNums 中,游戏开始时,要求所有桶的小球总数不能超过 SUM,
如果小球总数超过 SUM,则需对所有的小桶统一设置一个容量最大值 maxcapacity并需将超过容量最大值的小球拿出来,直至小桶里的小球数量小于 maxcapacity;请您根据输入的数据,计算从每个小桶里拿出的小球数量,

限制规则一:
所有所有小桶的小球总和小于 SUM,则无需设置容量值,并且无需从小桶中拿球出来,返回结果[];

限制规则二:
如果所有小桶的小球总和大于 SUM,则需设置容量最大值 maxcapacity并且需从小桶中拿球出来,返回从每个小桶拿出的小球数量组成的数组;
输入描述

第一行输入2个正整数,数字之间使用空格隔开,其中第一个数字表示 SUM ,第二个数字表示 bucketBallNums 数组长度:第二行输入N个正整数,数字之间使用空格隔开,表示 bucketBallNums 的每一项:
输出描述

数组剩余小球。

示例一

输入

14 7
2 3 2 5 5 1 4

输出
[0,1,0,3,3,0,2]
说明
小球总数为 22,sum=14,超出范围了,需从小桶取球,
maxCapacity=1,取出球后,桶里剩余小球总和为7,远小于 14 maxCapacity=2,取出球后,桶里剩余小球总和为13
maxCapacity=3,取出球后,桶里剩余小球总和为 16,大于14因此 maxCapacity为2,每个小桶小球数量大于2的都需要拿出来;

示例二

输入
3 3
1 2 3
输出
[0,1,2]
说明
小球总数为6,SUM=3,超出范围了,需从小桶取球 maxCapacity=1,则小球总数为3从0号桶取出0个球,从1号桶取出1个球,从2号桶取出2个球;

示例三

输入
6 2
3 2
输出

[]

说明
小球总数为5,SUM=6,在范围内,无需从小桶取球;
备注

1<= bucketBallNums[i] <= 10^9
1 <= bucketBallNums.length = N <= 10^5

1<= maxCapacity<= 10^9

1<= SUM <= 10^9

Java 代码

import java.util.Scanner;
import java.util.*;
import java.util.stream.Collectors;
import java.math.BigInteger;
import java.util.stream.IntStream;class Main {public static void main(String[] args) {// 处理输入Scanner in = new Scanner(System.in);int sum = in.nextInt();int nums = in.nextInt();int[] balls = new int[nums];int[] org_balls = new int[nums];for (int i = 0; i < nums; i++) {balls[i] = in.nextInt();org_balls[i] = balls[i];}int total =  Arrays.stream(balls).sum();if (total <= sum) {System.out.println("[]");return;}Arrays.sort(balls);//二分法初始化int left = sum / nums;int right = balls[nums - 1];int[] result = new int[nums];for (int i = 0; i < nums; i++) {result[i] = org_balls[i] > left ? org_balls[i] - left : 0;}while (right > left+1){int mid = (right + left) / 2;int[] tmp = new int[nums];int temp_total = total;for (int i = 0; i < balls.length; i++) {int r = org_balls[i] > mid? org_balls[i] - mid: 0;temp_total -= r;tmp[i] = r;}if (temp_total > sum)right = mid;else if (temp_total < sum){left = mid;result = tmp;}else{result = tmp;break;}}System.out.println(Arrays.toString(result));}}

Python代码

import functools
import collections
import math
from itertools import combinations
from re import match# 处理输入
params = [int(x) for x in input().split(" ")]
total = params[0]
N = params[1]
balls = [int(x) for x in input().split(" ")]
origin_balls = []
for i in balls:origin_balls.append(i)
single_total = sum(balls)if(single_total <= total):print([])
else:#二分法初始化left = int(total / N)right = max(balls)result = [x - left if x > left else 0 for x in origin_balls]while (right > left+1):mid = int((right + left) / 2)temp = []for i in range(N):if(balls[i] > mid):temp.append(origin_balls[i] - mid)else:temp.append(0)if (single_total - sum(temp)>total):right = midelif (single_total -sum(temp)<total):left = midresult = tempelse:result = tempbreakprint(result)

JS代码

function main(sum, nums, balls ) {let total = eval(balls.join("+"))if (total <= sum) {console.log("[]")return}let org_balls = []for (let i=0;i<nums;i++){org_balls.push(balls[i])}balls.sort()//二分法初始化let left = sum / nums;let right = balls[nums - 1]let result = new Array(nums)for (let i = 0; i < nums; i++) {result[i] = org_balls[i] > left ? org_balls[i] - left : 0;}while (right > left+1){let mid = (right + left) / 2let tmp = new Array(nums)let temp_total = totalfor (let i = 0; i < balls.length; i++) {let r = org_balls[i] > mid? org_balls[i] - mid : 0;temp_total -= r;tmp[i] = r;}if (temp_total > sum)right = mid;else if (temp_total < sum){left = mid;result = tmp;}else{result = tmp;break;}}console.log(result)}main(3,3,[2,3,1])

相关文章:

华为OD机试-开放日活动-2022Q4 A卷-Py/Java/JS

某部门开展Family Day开放日活动&#xff0c;其中有个从桶里取球的游戏&#xff0c;游戏规则如下:有N个容量一样的小桶等距排开&#xff0c;且每个小桶都默认装了数量不等的小球&#xff0c; 每个小桶装的小球数量记录在数组 bucketBallNums 中,游戏开始时&#xff0c;要求所有…...

两亲性聚合物:Lauric acid PEG Maleimide,Mal-PEG-Lauric acid,月桂酸PEG马来酰亚胺,试剂知识分享

Lauric acid PEG Maleimide&#xff0c;Lauric acid PEG Mal| 月桂酸PEG马来酰亚胺 | CAS&#xff1a;N/A | 端基取代率&#xff1a;95%一、试剂参数信息&#xff1a; 外观&#xff08;Appearance&#xff09;&#xff1a;灰白色/白色固体或粘性液体取决于分子量 溶解性&am…...

FB使用入口点函数例子

一、DLL的入口点 1.1 VFB的自带DLL模式入口 FB是把代码转成C&#xff08;GCC编译&#xff09;或者汇编&#xff08;GAS编译&#xff09;后编译的&#xff0c;本身就有一个main函数&#xff0c;所以在程序里其实不需要入口点&#xff0c;直接写就可以顺序执行&#xff0c;而有的…...

学习周报4/9

文章目录前言文献阅读摘要简介方法结论时间序列预测总结前言 本周阅读文献《Improving LSTM hydrological modeling with spatiotemporal deep learning and multi-task learning: A case study of three mountainous areas on the Tibetan Plateau》&#xff0c;文章主要基于…...

49天精通Java,第14天,Java泛型方法的定义和使用

目录一、基本介绍1、Java泛型的基本语法格式为&#xff1a;2、在使用泛型时&#xff0c;还需要注意以下几点&#xff1a;二、泛型的优点1、类型安全2、消除强制类型转换3、更高的效率4、潜在的性能收益三、常见泛型字母含义四、使用泛型时的注意事项五、泛型的使用1、泛型类2、…...

20230402英语学习

reasonable adj.合理的&#xff1b;通情达理的&#xff1b;明智的&#xff0c;理智的 abstract adj.抽象的&#xff0c;理论的 reflection n.反射; 映像, 倒影; 反映; 表达, 抒发; (长相等)酷似的人; 惟妙惟肖的事物; 深思; 考虑 instruction n.教授; 教导, 指导; 指示, 命令…...

Java知识复习(十七)SpringCloud

1、什么是微服务架构 微服务架构就是将单体的应用程序分成多个应用程序&#xff0c;这多个应用程序就成为微服务&#xff0c;每个微服务运行在自己的进程中&#xff0c;并使用轻量级的机制通信这些服务围绕业务能力来划分&#xff0c;并通过自动化部署机制来独立部署。这些服务…...

MySQL 数据库操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、关系模型二、数据库的操作 创建数据库查看数据库选择数据库删除数据库三、MySQL 数据库命名规范总结一、关系模型 关系数据库是建立在关系模型上的。而关系模…...

Cesium更换地球背景

设置背景图片 #cesiumContainer {width: 100%;height: 100%;background-image: url("/assets/image/背景.png"); }设置渲染, 用来去掉地球表面的大气效果的黑圈问题 this.viewer new Cesium.Viewer("cesiumContainer", {......// 设置渲染orderIndepe…...

测试人员的瓶颈期

测试人员的瓶颈期 做测试久了&#xff0c;会在所难免地碰到职业瓶颈期&#xff0c;这很正常&#xff0c;从事任何职业的工作人员都会遇到&#xff0c;关键是要看你如何去克服它。对优秀的软件测试人员来讲&#xff0c;除了要具备全面的技能、丰富的经验、良好的心理素质&#x…...

HTML5 <form> 标签

HTML5 <form> 标签 实例 带有两个输入字段和一个提交按钮的 HTML 表单&#xff1a; <form action"demo_form.php" method"get">First name: <input type"text" name"fname"><br>Last name: <input type&qu…...

编译技术-词法理论

一、文法的种类 1.1 分类定义 Chomsky 文法定义&#xff1a; G(V,Vt,P,Z)G (V, V_t, P, Z)G(V,Vt​,P,Z)VVV&#xff1a;符号集合VtV_tVt​&#xff1a;终结符号集合PPP &#xff1a;有穷规则集合ZZZ&#xff1a;是被符号&#xff0c;不能是终结符 关于不同文法的区别 类型…...

【20】核心易中期刊推荐——计算机科学电子通信(EI索引)

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...

Vue 3.0 风格指南 2

#元素 attribute 的顺序推荐 元素 (包括组件) 的 attribute 应该有统一的顺序。 这是我们为组件选项推荐的默认顺序。它们被划分为几大类&#xff0c;所以你也能知道新添加的自定义 attribute 和指令应该放到哪里。 定义 (提供组件的选项) is列表渲染 (创建多个变化的相同元素…...

ChatGPT遭多国调查,OpenAI凌晨就安全问题发文,GPT-5要暂缓?

最近&#xff0c;意大利宣布禁用 ChatGPT&#xff0c;因为 OpenAI 违反了意大利相关的隐私规则和数据保护法&#xff0c;出现了用户数据丢失情况&#xff0c;而且未向用户告知。 消息出来后&#xff0c;德国、法国、爱尔兰、西班牙等国的监管部门都表示正在密切关注 ChatGPT 的…...

网络安全书籍推荐

网络安全书籍推荐 &#xff0c;对于网络安全的初学者来说&#xff0c;能很好的选择教材&#xff0c;鉴于只有英文版&#xff0c;我尝试翻译成中文以供参考&#xff0c;初次翻译&#xff0c;翻译的不好请见谅。 标题注解技术等级The Art of Software Security Assessment软件安…...

【独家】华为OD机试 - 狼羊过河 or 羊、狼、农夫过河(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:狼羊过河 or 羊、狼、农夫过河…...

东八区的 springboot 如何配置序列化

东八区的 springboot &#x1f69e;使用SpringBoot默认配置自定义配置类自定义 ObjectMapper自定义序列化器总结我接受它的苦&#xff0c;它的灰暗&#xff0c;它的刺&#xff0c;因为总会过去&#xff0c;我的花会开&#xff0c;生活也会慢慢拥抱我 使用SpringBoot默认配置 S…...

论文阅读_LLaMA

论文信息 number headings: auto, first-level 2, max 4, _.1.1 name_en: LLaMA: Open and Efficient Foundation Language Models name_ch: LLaMA: 开放高效的基础语言模型 paper_addr: https://arxiv.org/abs/2302.13971 doi: https://doi.org/10.48550/arXiv.2302.13971 da…...

腾讯空降测试工程师,绩效次次拿S,真是砂纸擦屁股,给我露了一手啊

​上周我们公司的绩效面谈全部结束了&#xff0c;每年到这个时间点就是打绩效的时候了&#xff0c;对于职场打工人来说绩效绝对是最重要的事情之一&#xff0c;原因也很简单&#xff1a;奖金、晋升、涨薪都和它有关系。 比如下面这个美团员工在脉脉上的自曝就很凄凉&#xff1…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...