news 2026/7/11 5:52:09

整数数组匹配

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
整数数组匹配

有两个数组a和b数组,都是正数的数组,a的数组总和在b数组中哪一块连续的空间差值最小,如果找到了,就打印b数组中的数组元素,首先解决这个问题需要有两个数组,还需要把a数组的总和求出来,求出来以后对比b数组,一个一个对比,两层循环,分别从0开始匹配,left不动,让right从1到最后以次累加起来和a数组总和进行对比,如果right所记录的值比求得的差值要小,就让min被重新赋值,然后记录当前的left和right,一直循环下去直到遍历完整个数组,打印templeft和tempright中间的值,这种方法是暴力求解,时间复杂最坏的情况下是O(n^2)

#include <stdio.h> int main() { //输入 int n=0; int m=0; scanf("%d %d",&n,&m);//两个值 int a[n]; int b[m]; int i=0; int sum=0; for(i=0;i<n;i++)//n是a { scanf("%d",&a[i]); sum+=a[i];//求得总和 } for(i=0;i<m;i++) { scanf("%d",&b[i]); } //得到了a数组的总大小 int min=INT_MAX;//把初始的min赋值为一个最大值 int left;//左边的下标 int right;//右边的下标 i=0;//i重新赋值为0,从下标为零开始循环 int tempsum=0;//记录每次right+1的值 int tempright=0;//记录需要被打印的右边下标 int templeft=0;//记录需要被打印的左边的下标 while(i<m)//m代表b { left=i;//开始都是从0开始累加 right=i; tempsum=0;//每次结束一次循环tempsum都要初始化为0 while(right<m)//right以次累加 { tempsum+=b[right];//累加 int tempmin=sum>tempsum?sum-tempsum:tempsum-sum;//计算差值,保证差值是正值 if(tempmin<min)//如果临时的差值比定义的差值小,就把right left tempmin赋值 { min=tempmin; tempright=right; templeft=left; } if(tempsum>=sum)//如果tmepsum都已经大于sum而且b数组都是正数,越加只会越大 { break; } right++;//向后累加 } i++;//遍历数组 } for(i=templeft;i<=tempright;i++) { printf("%d ",b[i]); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 5:36:31

52、网络与浏览器使用的安全与优化指南

网络与浏览器使用的安全与优化指南 1. 网络活动日志查看 当网络存在真实活动时,新条目通常会在几秒内显示在日志中。你可以点击“出站日志”查看由你的电脑发起的活动,点击“入站日志”查看来自外部世界的连接尝试。日志会显示 IP 地址、端口号以及数据是被阻止还是允许。 …

作者头像 李华
网站建设 2026/7/11 1:37:51

62、Windows系统文件共享、打印机连接及命令行操作指南

Windows系统文件共享、打印机连接及命令行操作指南 1. 无法离开家庭组的解决办法 当你遇到“Windows无法将你的计算机从家庭组中移除”的提示时,这意味着负责家庭组功能的一个或多个服务停止响应。你可以按以下步骤操作: 1. 打开服务窗口(services.msc)。 2. 停止“Hom…

作者头像 李华
网站建设 2026/7/10 10:27:33

【Open-AutoGLM vs LoadRunner深度对比】:谁才是负载测试的终极利器?

第一章&#xff1a;Shell脚本的基本语法和命令 Shell脚本是Linux/Unix系统中自动化任务的核心工具&#xff0c;通过编写可执行的文本文件&#xff0c;用户能够组合命令、控制流程并实现复杂操作。脚本通常以 #!/bin/bash开头&#xff0c;指定解释器路径&#xff0c;确保系统正确…

作者头像 李华
网站建设 2026/7/10 2:06:10

23、扩展 Windows PowerShell 的功能与安全管理

扩展 Windows PowerShell 的功能与安全管理 1. 访问 .NET SDK 库 在某些场景下,你可能需要访问 .NET DLL 所暴露的功能,而这些 DLL 通常作为面向开发者的软件开发工具包(SDK)的一部分。 解决方案 要创建 DLL 中包含的对象,可以使用 [System.Reflection.Assembly]::Lo…

作者头像 李华
网站建设 2026/7/10 18:18:50

27、PowerShell 文件、目录与注册表操作指南

PowerShell 文件、目录与注册表操作指南 1. 文件与目录操作 在文件和目录操作方面,PowerShell 提供了丰富的功能和便捷的脚本。 1.1 文件系统访问规则设置 在某些场景下,我们可能需要对文件系统的访问规则进行设置。比如,在解决方案中,可以通过 FileSystemAccessRule …

作者头像 李华
网站建设 2026/7/10 10:13:13

6G时代来临前夜,Open-AutoGLM究竟准备好了吗?

第一章&#xff1a;6G时代来临前夜&#xff0c;Open-AutoGLM的机遇与挑战随着5G网络在全球范围内的逐步成熟&#xff0c;6G技术的研发已悄然进入关键阶段。预计在2030年前后商用的6G&#xff0c;将实现太赫兹通信、超低时延、全域覆盖和智能原生等突破性能力。在这一背景下&…

作者头像 李华