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

「牛客网C」初学者入门训练BC156

🐶博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍🔥专栏系列:线性代数,C初学者入门训练

🔥座右铭:“不要等到什么都没有了,才下定决心去做”

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 

题目:BC156 牛牛的数组匹配

描述:

牛牛刚学会数组不久,他拿到两个数组 a 和 b,询问 b 的哪一段连续子数组之和与数组 a 之和最接近。 如果有多个子数组之和同样接近,输出起始点最靠左的数组。 

输入描述:

第一行输入两个正整数 n 和 m ,表示数组 a 和 b 的长度。

第二第三行输入 n 个和 m 个正整数,表示数组中 a 和 b 的值。

输出描述:

输出子数组之和最接近 a 的子数组

示例1

 输入:

2 6
30 39 
15 29 42 1 44 1
输出:
29 42

示例2

 输入:

6 1
50 47 24 19 46 47 
2
输出:
2

解题思路:询问 b 的哪一段连续子数组之和与数组 a 之和最接近,我们可以先计算每一个b数组元素b[i]与数组 a 之和sum的差值绝对值,然后记录差值,和此时的坐标,然后分别计算b[i]+b[i+1],b[i]+b[i+1]+b[i+2],b[i]+b[i+1]+b[i+2]+...+b[m]和sum的差值绝对值,然后分别记录差值,和此时的坐标。最后按照起始和末尾坐标打印。

​​​​​​​解题详细过程: 

#include<stdio.h>
int Abs(int sum1,int sum2)
{if(sum1>sum2)return sum1-sum2;return sum2-sum1;
}
void Fun(int sum1,int b[],int m)//Fun这个函数就是完成“询问 b 的哪一段连续子数组之和与数组 a 之和最接近”这个功能。
{int i=0,j=0,S=0,E=0;//S就是记录起始的位置,E记录末尾的位置int sum2=0;int min=sum1;//min记录sum2和sum1的差值绝对值,但是初始化为a数组之和for(i=0;i<m;i++){sum2=b[i];for(j=i+1;j<=m;j++){if(Abs(sum1,sum2)<min){min=Abs(sum1,sum2);S=i;E=j;}sum2+=b[j];}}for(i=S;i<E;i++)//打印{printf("%d ",b[i]);}printf("\n");
}
int main()
{printf("请输入a数组的长度,b数组的长度\n");int n=0,m=0;scanf("%d %d",&n,&m);int a[n];int b[m];printf("请输入a数组\n");int i=0;int sum=0;//统计b数组的和for(i=0;i<n;i++){scanf("%d",&a[i]);sum+=a[i];}printf("请输入b数组\n");for(i=0;i<m;i++){scanf("%d",&b[i]);}Fun(sum,b,m);return 0;
}

关于这个Abs函数我想重点叙述一下

int Abs(int sum1,int sum2)
{if(sum1>sum2)return sum1-sum2;return sum2-sum1;

Abs就是absolute value(绝对值)缩写,这里计算两个数的差值的绝对值,但注意,因为有人就会想我直接把这两个数定义为无符号整形,再以无符号整形打印,不一样可以得到绝对值吗,如果这样想就错了,无符号整形型的数的二进制是没有符号位的,所以原码,反码,补码,转换是有所差异的,例如-1无符号数是一个很大的数,而不是1

 🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸 

相关文章:

「牛客网C」初学者入门训练BC156

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练 &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下定决心去做” &#x1f680;&#x1f680;&#x1f680;大家觉不错…...

【Proteus仿真】【STM32单片机】粮仓温湿度控制系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用声光报警模块、LCD1602显示模块、DHT11温湿度模块、继电器模块、加热加湿除湿风扇等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示…...

九年时间,倾情投入,JumpServer开源堡垒机v3.0正式发布

2023年2月27日&#xff0c;JumpServer开源堡垒机正式发布v3.0版本。在JumpServer开源堡垒机v3.0版本的设计过程中&#xff0c;我们始终秉持着“内外兼修”的原则&#xff0c;旨在进一步提升用户的使用体验&#xff0c;真正用心做好一款开源堡垒机。 在JumpServer v3.0版本中&…...

【ROS学习笔记5】服务通信

【ROS学习笔记5】服务通信 文章目录【ROS学习笔记5】服务通信前言一、服务通信的理论模型二、服务通信自定义srv三、服务通信自定义srv的Cpp实现四、服务通信自定义srv的Python实现五、Reference写在前面&#xff0c;本系列笔记参考的是AutoLabor的教程&#xff0c;具体项目地址…...

“华为杯”研究生数学建模竞赛2006年-【华为杯】A题:Ad Hoc 网络中的区域划分和资源分配问题(附获奖论文)

赛题描述 Ad Hoc网络是当前网络和通信技术研究的热点之一,对于诸如军队和在野外作业的大型公司和集团来说,Ad Hoc网络有着无需基站、无需特定交换和路由节点、随机组建、灵活接入、移动方便等特点,因而具有极大的吸引力。 在Ad Hoc网络中,节点之间的通信均通过无线传输来完…...

编写第一个JAVA程序,常见踩坑记录

编写第一个JAVA程序 预备环境 电脑需要安装JDK 及 配置环境变量打开cmd 输入java -version 能运行在说 创建工程 创建文件夹javaCode(随意叫…) 创建文件Hello.java 编写代码 public class Hello{public static void main(String[] args){System.out.print("hello wo…...

求职陷阱:Lazarus组织以日本瑞穗銀行等招聘信息为诱饵的攻击活动分析

概述 Lazarus组织是疑似具有东北亚背景的APT组织&#xff0c;奇安信威胁情报中心内部追踪编号为APT-Q-1&#xff0c;因2014年攻击索尼影业开始受到广泛关注&#xff0c;其攻击活动最早可追溯到2007年。该组织早期主要针对其他国家政府机构&#xff0c;以窃取敏感情报为目的&am…...

【C语言每日一题】判断字符串旋转结果(附加字符串左旋详解)

【C语言每日一题】—— 判断字符串旋转结果&#x1f60e;&#x1f60e;&#x1f60e; 目录 &#x1f4a1;前言&#x1f31e;&#xff1a; &#x1f49b;字符串左旋题目&#x1f49b; &#x1f4aa; 解题思路的分享&#x1f4aa; &#x1f60a;题目源码的分享&#x1…...

SpringSecurity+JWT+Redis进行用户鉴权和接口权限的控制

系统的登录&#xff0c;都做些什么&#xff1f;用户访问登录页时&#xff1a;会发起一个获取图片验证码的请求&#xff0c;后端先生成一个uuid代表此次的验证码,接着生成 "ab?答案" 的表达式&#xff0c;将前面的内容转换成流生成图片&#xff0c;后面的答案则存储到…...

七大排序(Java)

目录 一、插入排序 1. 直接插入排序 2. 希尔排序 二、选择排序 1. 直接选择排序 2. 堆排序 三、交换排序 1. 冒泡排序 2. 快速排序 四、归并排序 五、总结 一、插入排序 1. 直接插入排序 抓一张牌&#xff0c;在有序的牌中&#xff0c;找到合适的位置并且插入。 时间…...

分享一些可以快速掌握python语法的小技巧

下面是我总结的一些有助于快速掌握 Python 语法的小技巧&#xff0c;欢迎一起交流。 注释&#xff1a;在代码中添加注释可以帮助你和其他人理解代码的目的和功能。在 Python 中&#xff0c;使用 # 符号来添加单行注释&#xff0c;使用三引号 """ 或 来添加多行…...

1.FFmpeg-音视频基础

专栏介绍基于最新的FFmpeg5.1.2版本讲解学习, 跟随博主一起学习ffmpeg: 本专栏学习流程为: FFmpeg安装、...

Parasoft的自动化测试平台到底强在哪?

在如今产品迭代如此之快的大背景下&#xff0c;软件测试这项工作越来越被大家所重视&#xff0c;但是通常情况下大家都是选择在产品上线前再去做测试&#xff0c;这个时候就会面临很多麻烦和挑战。首先&#xff0c;产品已经开发好之后&#xff0c;体量比较大&#xff0c;要从哪…...

FastDDS-0.简介

FastDDS简介 eProsima Fast DDS 是 DDS (Data Distribution Service) 协议的一个C语言实现版本&#xff0c;该协议由 Object Management Group (OMG) 组织定义。 eProsima Fast DDS 库既提供了一个应用编程接口&#xff08;API&#xff09;&#xff0c;又提供了一种通信协议&a…...

Flutter入门进阶之旅 -开源Flutter项目

开源Flutter项目 该项目为纯flutter端项目&#xff0c;采用aar方式寄生在原生APP中&#xff0c;作为APP中的一个独立模块 在业务逻辑上做到与原生APP完全隔离&#xff0c;Flutter端开发者&#xff0c;可完全不用关注原生端的业务模块 两端开发彼此业务隔离&#xff0c;缩小了对…...

Opencv项目实战:21 美国ASL手势识别

0、项目介绍 首先&#xff0c;我可以保证在这里&#xff0c;你并不需要多么了解深的机器学习算法&#xff0c;我的初衷是通过本项目&#xff0c;激发大家学习机器学习的动力。选择这种手势原因是因为只有24个字母&#xff0c;你的电脑足以带的动&#xff0c;虽然我只训练A、B、…...

强化学习RL 01: Reinforcement Learning 基础

目录 RL理解要点 1. RL数学基础 1.1 Random Variable 随机变量 1.2 概率密度函数 Probability Density Function(PDF) 1.3 期望 Expectation 1.4 随机抽样 Random Sampling 2. RL术语 Terminologies 2.1 agent、state 和 action 2.2 策略 policy π 2.3 奖励 reward …...

C语言之练习题合集

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 文章目录leetcode 题号&#xff1a;728. 自除数leetcode 题号&#xff1a;238.…...

sublimeText3新建文件自动添加注释头

参考&#xff1a; https://github.com/shiyanhui/FileHeader/blob/master/README.rst https://packagecontrol.io/packages/FileHeader https://github.com/shiyanhui/FileHeader fileheader&#xff1a;https://codeload.github.com/shiyanhui/FileHeader/zip/refs/heads/m…...

AndroidStudio打包HBuilderX的H5+项目为安卓App【一次过,无任何异常报错】

目录 1.查看HBuilderX的版本号 2.下载Dcloud上对应的安卓SDK 3.下载完安卓SDK后&#xff0c;我们解压它&#xff0c;注意不要放在任何有中文组成的文件夹中【是否有中文决定于你鼠标单击上面路径后&#xff0c;第一张图还没鼠标单击&#xff0c;第二张已鼠标单击&#xff0c…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

Qt Quick Controls模块功能及架构

Qt Quick Controls是Qt Quick的一个附加模块&#xff0c;提供了一套用于构建完整用户界面的UI控件。在Qt 6.0中&#xff0c;这个模块经历了重大重构和改进。 一、主要功能和特点 1. 架构重构 完全重写了底层架构&#xff0c;与Qt Quick更紧密集成 移除了对Qt Widgets的依赖&…...

简约商务通用宣传年终总结12套PPT模版分享

IOS风格企业宣传PPT模版&#xff0c;年终工作总结PPT模版&#xff0c;简约精致扁平化商务通用动画PPT模版&#xff0c;素雅商务PPT模版 简约商务通用宣传年终总结12套PPT模版分享:商务通用年终总结类PPT模版https://pan.quark.cn/s/ece1e252d7df...