H面试(21):在一个升序数组找两数之和

LeetCode 面试经典 150 题回顾 最经典 150 题,掌握面试所有知识点 面试经典 150 题 : 题目分析、解题思路、复杂度分析、代码展示 阅读详情

题目: 输入一个已经按升序过的数组和一个数字

在数组中查找两个数,使得它们的和正好是输入的那个数字。

要求时间复杂度为O(n).如果有多对数字的和等于输入的数字,输入任意一对即可。

例如输入数组 1,2,7,11,15和数字 15. 由于4 + 11= 15,应此输出 4和 11

思路:

用数组的头尾指针向中间扫描

#include <assert.h>  
#include <stdio.h> 

void sum_of_two(int * a ,int sum, int  *begin , int *end)
{   
		assert(begin);
		assert(end);


		while (*begin + *end != sum && begin != end)
		{
			if( *begin + *end > sum)
			{   
				end--;
				
			}
			else if( *begin + *end < sum)
			{
				begin++;
			}
			
					
		}
		if(begin == end)
		{
			printf("can't find the two number");
		}
		else
		{
	        printf("%d + %d = %d\n", *begin,*end,sum);
        }
  
}

int main( )
{
	int a[ ] = {1,5,8,10,11,13};
	int n = sizeof(a)/sizeof(int);
	int sum;
	printf("please input the sum of two:  ");
	scanf("%d", &sum);
	int * begin = a; int * end = &a[ n-1 ];
    sum_of_two(a,sum,begin, end);
	
	return 0;
}

网上的答案


void find2Number(int a[ ], int n, int dest)
{
  int *f  = a, * e = a + e -1;
  int sum = *f + *e;
  while (sum !=dest && f < e)
  {
	  if ( sum < dest)
	  {
		  sum = *(++f);
	  }
	  else 
	  {
		  sum =*(--e);
	  }
  }
  if (sum = dest)
  {
	  printf("%d,%d\n", *f, *e);
  }
}


多核系统核间通信(IPC)设计:从硬件机制到软件实现 在多核处理器与嵌入式系统设计中,核间通信(IPC)是实现计算资源协同工作的核心技术。其原理基于共享内存、硬件邮箱与中断等底层硬件机制,通过构建结构化的消息传递通道,实现核间高效、可靠的数据交换。该技术的核心价值在于打破多核间的壁垒,将分散的计算单元整合为有机整体,从而显著提升系统整体性能与响应能力。在工程实践中,IPC广泛应用于智能座舱、边缘AI网关、实时控制系统等场景,用于处理如仪表显示、AI推理、实时控制等复杂任务。本文聚焦于基于共享内存与VRING的消息队列实现,深入剖析缓存一致性、内存屏障等关键问题 阅读详情

相关推荐

virtuoso根据原理图绘制版图并联接_virtuoso画原理图

Virtuoso Schematic Editor 电路仿真一、Virtuoso Schematic Editor 实验目的:掌握电原理图(schematic)设计输入方法。 [1]启动 IC Design 软件 启动 软件: 开机后运行......2.绘制原理图 新建工程后打开的是默认的原理图文件 SCHEMATIC1 PAG...存盘 完成原理图的绘制后,将原理图存盘. 三 . 用 Check...

weixin_33536190的博客 4145

给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。

给定一个已按照 升序排列的整数数组numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。

m0_51919640的博客 1111

高效IT运维报告编写指南:实战经验与模板分享

本文提供了一份全面的IT运维报告编写指南,涵盖实战经验与实用模板分享。文章详细解析了高效运维报告的核心要素,包括结构设计、数据收集自动化和可视化技巧,并提供了月度报告和故障分析报告模板。通过自动化工具和写作技巧,帮助团队提升报告质量,支持决策和问题追踪。

u5v6w7的博客 928

找出升序数组中和为给定值的两个数字

描述: 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。如果有多对数字 的和等于输入的数字,输入任意一对即可。 例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4和11。 分析: (1)如果我们不考虑时间复杂度,最简单想法莫过于先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的

lanximu的专栏 1960

Win11+Ubuntu18.04+Ubuntu20.04三系统安装与卸载

以下情况均为个人情况:1.插入启动 U 盘后,登录时可以按F12(拯救者Y7000,不同电脑不同)进入BIOS,选择从启动盘启动。2.。3.5.在win基础上,安装第一个Ubuntu系统后,系统启动界面类似如下第一张图,Ubuntu不显示版本号。安装第二个Ubuntu系统后,系统启动界面如下第二张图,如果想更改启动项的名称,可自行查阅相关资料。

weixin_61686291的博客 2540

Win10 系统下VisualStudio2022 配置Open3D-0.18.0(C++)

Win10 系统下VisualStudio2022 配置Open3D-0.18.0

点云侠的博客 2658

从一个升序的数组中找出和为sum的两个数

现有一个数组,内部元素采用升序排列,请找出其中的两个数,其和为sum。请使用最快的方法。 思路1: 双指针遍历。 #include <iostream> class arrayFind { public : arrayFind() { } virtual ~arrayFind() {} void find(int A[], int len,int sum) { if (A == nullptr) return; if (len < 1)...

Peace 455

什么是DHCP Snooping?如何配置DHCP Snooping?

功能描述防护类型防御伪造 DHCP 服务器、避免地址冲突、增强网络安全性使用场景企业园区网、校园网、大型局域网配合机制IP Source Guard、DAI、防止 ARP 欺骗部署难度⭐⭐(简单)“DHCP Snooping,是内网 DHCP 安全防护的第一道门神。” 🛡️。

网络技术联盟站 1267

给定升序数组,找到两个数使他们之和等于目标数

给定升序数组,找到两个数使他们之和等于目标数 例如: 给定数组[2,4,7,9],找到两个数使他们之和等于9. 返回[1,3]。 使用“左右指针”,往中间靠拢。 代码: public static int[] twoSum(int[] source, int target){ int left = 0;//左边指针起始位置 int right = source.length-1;//右边指针起始位置 while(left<right){

weixin_45732391的博客 706

在Simulink中实现一个基于SiC MOSFET的高效率电机驱动系统

本文介绍了在Simulink中构建基于SiC MOSFET的高效率电机驱动系统的详细流程。系统由直流电源模块、SiC MOSFET逆变器模块、PMSM电机模型、控制策略模块(包括矢量控制和PWM生成)以及反馈测量模块组成。文章逐步指导了从模型创建到参数设置的完整过程,包括各模块的具体实现方法。通过仿真可以评估系统在不同负载条件下的响应速度、效率、功率密度等性能指标。该建模方法为电机驱动系统的设计和优化提供了有效工具,同时建议根据实际硬件规格和工程需求进行参数调整和定制化开发。

xiaoheshang_123的博客 251

基于STM32+4G模块设计的智能灌溉系统

当前智能灌溉系统分为三个部分:温湿度采集部分、灌溉系统部分、OneNet云平台。 灌溉系统部分增加刷卡功能,用户可以通过IC卡刷卡将金额刷到灌溉系统设备里,灌溉系统设备里会记录金额,并且在手机可视化页面上会显示当前的设备金额。 金额会随着时间进行递减,按分钟计费,如果计费到0,就无法启动灌溉,需要重新充值金额才能继续。

4515

算法题:从一个升序数组中,查找两个数,两数之和等于输入的数。

微软100道算法题-----输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求:时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对。 思路:设置两个指针,一个指向开头,一个指向结尾,两数相加,如果和大了,则右边的指针往左移,如果和小了,则左边的指针往右移。 int main(void) { int arry[] = {1,3,4...

HKpeng的学习记录 1462

【工具篇】万字长文拆解 Otter.ai:语音转文字领域的「瑞士军刀」是如何炼成的?(附保姆级教程)

但需要注意,2024年欧盟已出台《AI转录伦理指南》,要求所有录音需获得参与者明确授权。举个真实案例:某硅谷创业团队用Otter.ai记录产品评审会,系统自动标红争议点并生成待办事项,会议效率提升40%。AIGC技术原理、 实时转录解析、 定价策略分析、 语音算法拆解、 多平台兼容测试、 深度学习框架、 空间计算专利。——无论是跨国会议、课堂讲座还是深夜灵感,它都能实时生成带时间戳的文本记录,准确率高达95%。(此处建议插入Otter.ai会议转录动图,展示实时字幕生成效果)(数据来源:综合参考文献整理)

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1260

2014年百度实习生面试题及总结

通过这次面试,突然感觉自己弱爆了,故写此总结以记之。 1、给定一个升序的整型数组和一个整数,请在数组中找出二个数使得这二个数的和等于所给定的这个数,若存在多组整数满足条件,则输出任意一组即可。要求时间复杂度为O(n)。 思路:使用数组的下标和其值之和等于给定的数。(郁闷的是当时没有想出来!!) 具体方法:(假设给定的升序数组为a[]和整数n) 1) 新开辟一个数组b[]并初始化为零。

liuwu265的专栏 1674

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

p#输入整型数组和排序标识,对其元素按照升序或降序进行排序#

好久没更新了,最近要开始准备提前批了,所以开始整理三月份面的一些面经~面的是武汉小红书,人审部门一面。不好意思标题党了,贴主和男朋友是同学,现在手上有两套选择方案,在上海都是互联网的工作,年包加起来95。#我的上岸简历长这样#一、简历要突出重点,亮点夺目 重点突出,字体加粗,内容言简意赅,项目在精。#24届# #24届找工作日常# 24统计专业统招本科,求个内推,中介别来,意向是产品类的岗位,别。南京终端BG软件部,报的校企合作的鸿蒙菁英班,笔试分数不是很理想,但是面试表现不错,不知道能泡出来不。

han_xue_feng的博客 965

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode力扣刷题回顾(题目编号:94、17、面试题17、102、215、1、21)

LeetCode刷题回顾(题目编号:94、17、面试题17、102、215、1、21)链表,快速排序,Java优先队列,树的遍历

RitaAndWakaka的博客 337

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2024年最新【前端面试】数组排序:array,掌握这个提升路径,

四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~祝大家都能收获大厂offer~开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】篇幅有限,仅展示部分内容如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。

2401_84413180的博客 373

21届秋招快手前端面经

21届秋招快手前端面经 一面(8.29) 面试的小哥哥还是很nice的,在编程中遇到记得不熟的api甚至允许我去查 自我介绍 实现元素水平垂直居中 console.log(typeof typeoof typeof null) instanceof 与typeof 通过例题询问this指向 (编程题)数组扁平化并去除重复数据,得到一个升序且不重复的数组 (编程题)遍历dom数 (编程题)使用数组reduce实现map方法 http协议的认识 跨域的了解 servi

前端小学生 1645

面试题4:二维数组中的查找

剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]...

文选的blog 493

题解 | #输入整型数组和排序标识,对其升序或降序进行排序#

题主背景是本硕985,家庭很普通,就是未来要买房啥的话只能靠我自己,今年准备秋招,目前在北京一家互联。开始投的太晚了,根本没有面试机会捞捞捞捞救救,现在在软件上看的岗位也就那几个了,是因为饱和了嘛?本人计算机相关专业,太菜了+准备得晚,现在还没找到实习,而且之前面试笔试经历不好,感觉以现在的水平找。#我的简历长这样#投了几个提前批试试水,面试机会都没有,痛定思痛,花了好几天锤炼简历。#实习# #小红书# 组内招聘实习生,内容识别方向,有需要的可以发我简历职位要求:1.计算机、数学。

2301_78234743的博客 994
上一篇: H面试(23):求子数组最大和
下一篇: H面试(24):调整数组顺序使奇数位于偶数前面
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值