2024年4月13日美团春招实习试题【第二题:最多0的个数】-题目+题解+在线评测【贪心】

2024年4月13日美团春招实习试题【第二题:最多0的个数】-题目+题解+在线评测【贪心】

  • 题目描述:
    • 输入描述
    • 输出描述
    • 样例
  • 解题思路一:贪心,将所有负数变为正数,然后排序。nums.sort(key = lambda x: abs(x))
  • 解题思路二:c++
  • 解题思路三:java

题目描述:

塔子哥拿到了一个数组,她可以进行最多k次操作,每次操作任选一个元素加1或者减1。塔子哥希望最终0的数量尽可能多。你能帮帮她吗?

输入描述

第一行输入2个正整数n,k,代表数组大小和塔子哥的操作次数

第二行输入n个整数ai,代表塔子哥拿到的数组。 1≤n≤105

1≤k≤1014

−109≤ai≤109

输出描述

一个整数,代表最终0的数量的最大值。

样例

输入

4 5
-2 3 -2 9

输出

2

说明

对第二个元素操作3次减1,对第三个元素操作2次加1,这样数组变成[-2,0,0,9]。
请注意,方案并不是唯一的。但可以证明,0的数量不会超过2个。

OJ链接
https://codefun2000.com/p/P1820

解题思路一:贪心,将所有负数变为正数,然后排序。nums.sort(key = lambda x: abs(x))

n, k = map(int, input().split())
nums = list(map(int, input().split()))
for i in range(len(nums)):if nums[i] < 0:nums[i] = -nums[i]
nums.sort()
ans = 0
for i in range(len(nums)):if nums[i] == 0:ans += 1else:if k >= nums[i]:k -= nums[i]ans += 1else:break
print(ans)# 同意
n, k = map(int, input().split())
a = list(map(int, input().split()))
a.sort(key = lambda x: abs(x))
ans = 0
s = 0
for x in a:s += abs(x)if s > k:breakans += 1
print(ans)

时间复杂度:O(nlogn) 排序
空间复杂度:O(1)

解题思路二:c++

#include<bits/stdc++.h>
using namespace std;
const int N=1E5+10;
typedef long long ll;
ll a[N],n,k;
int main(){cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];a[i]=abs(a[i]);}sort(a,a+n);int cnt=0;for(int i=0;i<n;i++){if(k<a[i])break;k-=a[i];cnt++;}cout<<cnt<<endl;return 0;
}

时间复杂度:O(nlogn) 排序
空间复杂度:O(1)

解题思路三:java

import java.util.*;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();long k = in.nextLong();long[] a = new long[n];for(int i=0; i<n; i++){a[i] = Math.abs(in.nextLong());}Arrays.sort(a);long count = 0L;long sum = 0L;for(int i=0; i<n; i++){sum += a[i];if(sum<=k){count++;}else{break;}}System.out.println(count);}
}

时间复杂度:O(nlogn) 排序
空间复杂度:O(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据仓库作业五:第8章 关联规则挖掘

目录 第8章 关联规则挖掘作业题 第8章 关联规则挖掘 作业题 1、设4-项集 X { a , b , c , d } X\{a,b,c,d\} X{a,b,c,d}&#xff0c;试求出由 X X X 导出的所有关联规则。 解&#xff1a; 首先生成项集的所有非空真子集。这包括&#xff1a; { a } , { b } , { c } , {…

UE5集成gRPC

最近有项目需要在UE5里做RPC&#xff0c;对比了thrift、gRPC、rcplib等开源rpc框架&#xff0c;由于习惯使用protobuf&#xff0c;故选择了gRPC。然而&#xff0c;Google出品也是一言难尽啊&#xff0c;最起码编译太繁琐了。 本次使用的gRPC版本为1.62.1&#xff0c;UE5.2&…

基于机器学习的车辆状态异常检测

基于马氏距离的车辆状态异常检测&#xff08;单一传感器&#xff09; 基于多元自动编码器的车辆状态异常检测 基于单传感器平滑马氏距离的车辆状态异常检测 工学博士&#xff0c;担任《Mechanical System and Signal Processing》等期刊审稿专家&#xff0c;擅长领域&#xff1…

数据结构详解

数据结构 线性结构 一个有序数据元素的集合其中数据元素之间的关系是一对一的关系&#xff0c;即除了第一个和最后一个数据元素之外&#xff0c;其它数据元素都是首尾相接的 非线性结构 线性结构的对立面 数组 定义 数组是一种线性数据结构&#xff0c;用于存储相同类型…

java面向对象的封装Triangle

&#xff08;1&#xff09;定义三角形类Triangle&#xff0c; * - 声明实例变量a,b,c&#xff0c;代表三角形三条边&#xff0c;全部私有化private&#xff0c; * - 提供每条边的get方法&#xff0c; * - 提供public void setBases(double a, double b, double c)&#xff1a;要…

【Redis(3)】深入理解Redis三种高可用方案,以做出明智的选择

通过上一篇文章详细介绍了Redis的持久化方式RDB和AOF配置&#xff0c;这一篇主要介绍Redis的几种高可用方案。 Redis作为一个成熟的远程字典服务&#xff0c;提供了三种常用的高可用设计方案&#xff0c;Redis的每种高可用性方案都各有千秋&#xff0c;选择时需要细致考虑业务…

JavaSE基础:数值比较

数值比较 目录 数值比较 等值判断 和 的区别 重写 equals 方法 数值比较 compareTo 方法 compare 方法 等值判断 Object 类实现了 equals 方法 &#xff0c;用于比较两个数据元素是否相等。 浮点类型由于精度丢失问题&#xff0c;进行等值判断常出现错误。如果有需求推…

【加密周报】中东“惊雷”炸响币圈!比特币减半成功完成,市场情绪已被提前消化!中美突传USDT重磅消息!

周五(4月19日)&#xff0c;比特币经历惊魂一刻&#xff0c;伊朗核设施所处的中部城市伊斯法罕惊传爆炸&#xff0c;叙利亚与伊拉克也都传来爆炸声响&#xff0c;中东全面战争与核武攻击威胁触发加密市场恐慌情绪。比特币一度下探59600美元。但随后伊朗强调核设施未受损&#xf…

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

数据结构_带头双向循环链表

List.h 相较于之前的顺序表和单向链表&#xff0c;双向链表的逻辑结构稍微复杂一些&#xff0c;但是在实现各种接口的时候是很简单的。因为不用找尾&#xff0c;写起来会舒服一点。&#xff08;也可能是因为最近一直在写这个的原因&#xff09; #pragma once #include<std…

二维码门楼牌管理应用平台建设:构建智能社区治理新模式

文章目录 前言一、二维码门楼牌管理应用平台的意义二、走访日志功能的重要性三、走访日志功能的具体应用四、走访日志功能的优势五、结语 前言 在数字化浪潮下&#xff0c;社区管理正面临着前所未有的机遇与挑战。二维码门楼牌管理应用平台的建设&#xff0c;不仅为社区治理提…

代码随想录训练营Day 27|Python|Leetcode|122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获…

fastjson转换json时默认将属性第一个字母转小写

描述&#xff1a; 我新建了一个实体类&#xff0c;但是实体类的首字母是大写的&#xff0c;但是使用fastjson后打印的&#xff0c;Json字符串首字母却是小写的&#xff0c;这是fastjson的一个bug 实体类&#xff1a; Json字符串&#xff1a; 解决方法&#xff1a; 一、使…

HoloLens2的Unity应用在电脑上发布成安装包,然后通过wifi安装到设备

一、VS工程中的鼠标右键 二、发布——>创建应用程序包 三、选择【旁加载】 四、选择签名方法&#xff1a; 五、选择和配置包 六、创建完毕 七、网络连接设备 八、登录设备 九、安装app

六边形酷科技特效单页源码

源码介绍 基于canvas画布绘制多个六边形追踪鼠标&#xff0c;科技感的几何图形酷炫动画特效&#xff0c; 单页html源码&#xff0c;可以做网站动态背景&#xff0c;喜欢的朋友可以拿去 效果截图 完整源码 <!doctype html> <html> <head> <meta charset…

基于Kubernetes集群1.27.3构建ElasticSearch-7集群

基于Kubernetes集群构建ES集群 作者:行癫(盗版必究) 一:环境准备 1.Kubernetes集群环境 节点地址Kubernetes-Master10.9.12.206Kubernetes-Node-110.9.12.205Kubernetes-Node-210.9.12.204Kubernetes-Node-310.9.12.203DNS服务器10.9.12.210代理服务器10.9.12.209NFS存储1…

java之逻辑运算符

在java中&#xff0c;逻辑与的表示方法 && 逻辑或的表示方法 || 逻辑非为! 除了逻辑非是一元运算符之外&#xff0c;其他的都是二元运算符。 逻辑运算符的值必须是boolean型 假定两个变量&#xff0c;a和b&#xff0c;true用对表示&#xff0c;fals用错表示 a对&…

项目7-音乐播放器3(删除模块+播放音乐模块设计)

1.播放音乐模块设计 1.1 请求响应设计 请求&#xff1a; { get, /music/get?pathxxx.mp3 } 响应&#xff1a; { 音乐数据本身的字节信息 } 1.2 后端代码 1. Files.readAllBytes(String path) : 读取文件中的所有字节&#xff0c;读入内存 &#xff…

玄子Share-揭开5G神秘面纱

玄子Share-揭开5G神秘面纱 移动通信发展历程 在移动通信领域&#xff0c;常听到3G、4G的术语 G是Generation的简写&#xff0c;每一个G&#xff0c;都代表了移动通信的一个发展阶段&#xff0c;也是一个时代移动通信技术从 20 世纪 80 年代诞生开始&#xff0c;历经这 30 多…

SpringBoot集成FTP

1.加入核心依赖 <dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version></dependency> 完整依赖 <dependencies><dependency><groupId>org.springfra…