原文:面试之求找两个数和为某个数、几个连续数等于某个数

问题 输入一个递增排序数组和一个数字s,在数组中查找两个数,使得它们的和正好是s,如果有多对数字的和等于s,输出任意一对即可。 显然,很快能想到的是使用蛮力法 O n ,先固定一个数字,再判断剩下的n 个数字与它的和是否等于s。这种效率显然有点低,我们可以使用下面比较快的方式,时间复杂度O n 。 思路:我们通过两个记录数组的开始位置和结束位置,从数组的尾部开始,求两个数字的和, 如果两个数的和 ...

2015-07-28 14:57 4 2891 推荐指数:

查看详情

面试-算法 已经排好序的数组中两个数的和等于N

已知一个拍好序的数组,长度为M 在其中两个数,其和为N 刚刚拿到这个题目的时候,首先的常规想法是遍历循环求出所有的和,最终其值为N的就是结果,这个算法时间复杂度为o(N*N) 可能还有一些扩展的想法,那就是先把数组中比N大的元素去掉,这样少检查几个元素 这是典型的程序员思维,太早 ...

Sat Dec 24 06:34:00 CST 2011 6 2637
两个数组的交集

题目意思大概是这样的:给定两个大数组(1w以上1亿以下),用最有效的方法找出来两个数组的交集。 对于这道题,我有一个思路就是,先对数组进行排序,然后用两个指针在已排序的数组上轮流指向头结点,进行比较。 比较亮的地方,就是在于这个比较的方式了。 首先,比较的时候,要先确定两个指针指向的内用是 ...

Sun Sep 22 17:10:00 CST 2013 19 10067
在数组中寻找两个数之和等于目标

本道题目我起初的想法是暴力寻找两个数之和,每次与目标进行比对,这样的时间复杂度是O(n2)。 改进: 我使用散列表将数组元素散列存储,这样便可以对元素进行O(1)访问,从而实现在O(n)的时间复杂度解决该问题。 ...

Thu Apr 02 20:03:00 CST 2020 0 610
练习5-2 两个数中最大者 (10分)

本题要求对两个整数a和b,输出其中较大的。 函数接口定义: int max( int a, int b ); 其中a和b是用户传入的参数,函数返回的是者中较大的。 裁判测试程序样例: #include <stdio.h> int max( int ...

Sat Mar 28 23:23:00 CST 2020 0 2111
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM