BC156 牛牛的数组匹配(c语言)

news2024/9/22 11:23:45

1./描述
//牛牛刚学会数组不久,他拿到两个数组 a 和 b,询问 b 的哪一段连续子数组之和与数组 a 之和最接近。
//如果有多个子数组之和同样接近,输出起始点最靠左的数组。
//输入描述:
//第一行输入两个正整数 n 和 m ,表示数组 a 和 b 的长度。
//第二第三行输入 n 个和 m 个正整数,表示数组中 a 和 b 的值。
//输出描述:
//输出子数组之和最接近 a 的子数组

2.我们输入n m,然后进行对数字的存储arr[],brr[],然后我们将arr[]相加起来numa,然后我们将brr[]进行比较。

1.进入循环之后将left和right之间的数字加起来,判断与arr数组之和的差值是否小于min,小于则更新min的值然后将left和right的值保存方便后面输出。
2.然后判断sum的值是大于numa(数组arr之和)则left++;小于则right++;不断调整滑动窗口最后递归完数组全部元素,保存在min的里面就是最小差,cl,cr里面就是min的对应的数组区间。
注意:要先判断sum和min的关系然后再调整滑动窗口,不然会造成本来这个sum已经是最接近的了,但是因为不等于numa导致滑动窗口移动了,对应的sum也就不对了。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{
	int n = 0;
	int m=0;
	while((scanf_s("%d %d", &n, &m))!=EOF);
	{
		int arr[] = { 0 };
		int brr[] = { 0 };
		int numa = 0;
		int i = 0;
		int j = 0;

		for (i = 0; i < n; i++)
		{
			scanf_s("%d", &arr[i]);
			numa += arr[i];
		}
		for (j = 0; j < m; j++)
		{
			scanf_s("%d", &brr[j]);
		}
		int left = 0;
		int right = 1;
		int min = numa;
		int sum = 0;

		int cl = 0;
		int cr = 0;
		if (m == 1)
		{
			printf("%d", brr[0]);
			return 0;
		}
		while (left < right && right < m)
		{

			sum = 0;
			// sum = brr[left]+brr[right];
			for (int i = left; i <= right; i++)
			{
				sum += brr[i];
			}
			if (abs(sum - numa) < min)
			{
				min = abs(sum - numa);
				cl = left;
				cr = right;
			}
			if (sum > numa)
			{
				left++;
			}
			if (sum < numa)
			{
				right++;
			}

		}

		for (int i = cl; i <= cr; i++)
		{
			printf("%d ", brr[i]);
		}
	}

	return 0;
}

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

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

相关文章

NLP从零开始------12. 关于前十一章补充(英文分词)

相较于基础篇章&#xff0c;这一部分相较于基础篇减少了很多算法推导&#xff0c;多了很多代码实现。 1.英文词规范化 英文词规范化一般分为标准化缩写,大小写相互转化&#xff0c;动词目态转化等。 1.1 大小写折叠 大小写折叠( casefolding) 是将所有的英文大写字母转化成小…

开发高质量PDF应用的不二选择:PdfiumViewer库详细解析

1. PdfiumViewer库简介 PdfiumViewer是一款基于谷歌开源PDF渲染引擎PDFium的.NET库&#xff0c;主要用于在Windows应用程序中显示和处理PDF文档。PdfiumViewer提供了多种API和控件&#xff0c;使得开发者可以轻松地将PDF文档嵌入到其应用程序中。同时&#xff0c;PdfiumViewer…

利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取

在本文中&#xff0c;我将向您展示如何从收据中提取信息&#xff0c;并提供收据的简单图像。首先&#xff0c;我们将利用 OCR 从收据中提取信息。然后&#xff0c;此信息将发送到 GPT-4o 迷你模型进行信息提取。我在这个项目中的目标是开发一个应用程序&#xff0c;只需拍摄收据…

【排序算法】八大排序(下)(c语言实现)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;算法 目录 前言 测试数据和交换函数 五、堆排序 六、快速排序 1.hoare版本 2.挖坑法 3.lomoto版本 4.快速排序的非递归实现 5.快速排序性能总结 七、归…

手机mkv转换mp4:轻松实现视频格式兼容

如今手机已成为我们日常生活中不可或缺的伴侣&#xff0c;而视频文件则是我们享受娱乐、获取信息的重要来源。然而&#xff0c;由于不同设备和平台对视频格式的支持各有不同&#xff0c;我们有时会遇到无法在手机上播放某些视频文件的问题。 mkv是一种常见的视频格式&#xff…

android使用YOLOV8数据返回到JAVA方法(JAVA)

一、下载扩展文件(最耗时,所以放第一步) 1.opencv下载 1)官网:Releases - OpenCV 2)下载最新版本的android包 2.NCNN下载 1)NCNN下载地址(20220420版本):https://github.com/Tencent/ncnn/releases/download/20220420/ncnn-20220420-android-vulkan.zip 3.在你的…

倍内菲新品发布揭示宠物营养新纪元,引领行业保驾护航

2024年8月21日&#xff0c;伴随着第26届亚洲宠物展览会的揭幕&#xff0c;宠物主粮领军品牌倍内菲在展会首日举行了一场意义深远的新品发布会&#xff0c;重磅推出两款革命性新品——鲜肉烘焙系列与至护烘焙系列&#xff0c;不仅是对宠物进阶营养需求的深刻洞察&#xff0c;更是…

【信创】统信UOS打包工具介绍与使用教程

原文链接&#xff1a;【信创】统信UOS打包工具介绍与使用教程 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于统信UOS桌面操作系统上的UOS打包工具介绍与使用的文章。UOS打包工具是一款专为统信UOS系统开发的应用程序打包工具&#xff0c;旨在帮助开发者轻松创建…

Vue.js:解锁前端开发的快速入门之旅

标题&#xff1a;《Vue.js&#xff1a;解锁前端开发的快速入门之旅》 在日新月异的Web开发领域中&#xff0c;Vue.js以其简洁、灵活和高效的特点&#xff0c;迅速成为前端开发者们的宠儿。对于初学者而言&#xff0c;Vue.js不仅是一个易于上手的框架&#xff0c;更是开启现代前…

python动画:颜色(color)能接受的[manim_colors]

Manim_colors指的是Manim动画引擎中全局命名空间中包含的一组颜色。这些颜色构成了Manim默认的颜色空间。通过使用manim_colors&#xff0c;动画师和创作者可以轻松地访问和应用各种颜色到他们的动画中&#xff0c;而无需单独定义它们。这个特性简化了动画制作的过程&#xff0…

张宇线代9讲啃不动,换李永乐来得及吗?

快9月了&#xff0c;很多同学在后台留言说&#xff0c;跟宇哥的线代&#xff0c;但是啃不动&#xff0c;接下来该怎么办&#xff0c;换李永乐来的急吗&#xff1f; 让我来认真分析一下&#xff01; 张宇线代9讲为什么这么难啃&#xff1f; 25版张宇线代改版&#xff0c;线代的…

二叉树【2.5】代码专项

目录 醍醐灌顶——node* root 和node* &root作为参数的区别 return value&#xff1a; 写一个前序遍历的&#xff08;使用指针&#xff09; 中序遍历&#xff0c;只改动了preorder&#xff0c;只调换了一行 后序 层序&#xff08;使用bfs&#xff09;&#xff0c;新建队…

如何保证支付服务和交易服务订单状态一致?

消息传给消费者&#xff0c;消费者自己弄丢 业务幂等 所有的业务都应该保证幂等性&#xff0c; 如何保障业务幂等性 非幂等业务表单重复提交&#xff0c;在进入表单之前生成唯一标识&#xff0c;未token&#xff0c;携带token进行请求&#xff0c;执行表单提交&#xff0c;把…

unoredered_mapunordered_set封装

各层封装关系 封装时细节/tips Rfr Ptr用来constiterator //HTIterator 模板 template<class K, class T, class Ptr, class Rfr, class KeyOfT, class Hash> class HTIterator//普通Iterator类 & const_iterator类 typedef HTIterator<K, T, T*, T&, KeyOfT…

芯片中的电源VDD和地VSS

一、原理图中的电源和地符号 在绘制原理图的时候您应该会发现某个芯片上有VBAT VDD VSS VDDA VSSA那么他们都是什么意思呢&#xff0c;分别代表什么&#xff1f; 二、与常说的VCC的区别 可以看到VSS是表示GND 数字和模拟是分开的默认是数字&#xff0c;VDD表示电源&#xff0c;…

DC-DC开关电源稳压电路设计——7- 40V转换5V和3.3V

本篇文章记录分享DC-DC开关电源稳压&#xff08;7-40V转换5V和3.3V&#xff09;电路设计的思路及原理图。 目录 一、电路稳压原理图 二、开关稳压芯片 1、BUCK降压电路 2.LM2596 &#xff08;1&#xff09;、LM2596简介 &#xff08;2&#xff09;、LM2596原理 1. 基…

Python计算机视觉 第3章-图像到图像的映射

Python计算机视觉 第3章-图像到图像的映射 3.1 单应性变换 单应性变换&#xff08;Homography&#xff09;是计算机视觉中非常重要的一种几何变换&#xff0c;它用于将一个平面内的点映射到另一个平面内。具体来说&#xff0c;单应性变换可以描述一个图像在摄像机视角变化、…

音视频封装格式之FLV

FLV&#xff08;Flash Video&#xff09;是一种常见的视频文件格式&#xff0c;FLV 格式最初是由 Adobe 公司开发的&#xff0c;旨在为网络视频提供一种高效、可扩展且易于流式传输的解决方案。随着在线视频的迅速发展&#xff0c;FLV 因其良好的兼容性和流式传输性能&#xff…

4.2较难的栈和队列OJ

本篇博客来手撕三道稍有难度的栈和队列相关OJ&#xff0c;题目均已插入超链接&#xff0c;点击即可跳转~ 一、设计循环队列 1、题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff0c;即first in fir…

day39.动态规划+MySQL数据库复习

一.动态规划: 198.打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定…