第 14 题(数组):题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 ...
要求时间复杂度是O n 。如果有多对数字的和等于输入的数字M,输出任意一对即可。例如输入数组 和数字 。由于 ,因此输出 和 。 思路: 让指针指向数组的头部和尾部,相加,如果小于M,则增大头指针,如果大于则减小尾指针 退出的条件,相等或者头部 尾部 算法: void function int a ,int n,int M int i ,j n while i j if a i a j M pri ...
2012-05-25 17:01 0 6636 推荐指数:
第 14 题(数组):题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 ...
题目: 输入一个递增排序的数组和一个数字 s。 在数组中查找两个数,使得它们的和正好是 s。 如果有多对数字的和等于 s,输出任意一对即可。 解答: ...
); System.out.println("请输入一个整数:"); int num = scan.nextInt(); boolean ...
题目如下:现有一个数组长度为n+1,里面存放有1到n-2,顺序不定,其中有两个数字出现了两次,现在要找出那两个数字。 例子A={2, 3, 1, 4, 5, 2, 4}, 这个数组长度为7,存放了1到5,但2和4出现了两次,程序输出2和4 方法1 蛮力查找 主要思想:对于数组中的第i个数 ...
问题的起因 假设数组A有n个元素,数组B有n个元素。 看到这种题的时候,我们最直观的就是通过两层for循环来对比每个数组中的数字。因此A数组中的每个元素都会和B数组中的每个元素对比过一次,所以总共要对比的次数是n个n相加(或者是n个m相加),也就是n2(或者为n x m). 因此我们想能不能 ...
普通版:可输入,可输出。带详细的注释 1 2 3 4 5 6 7 8 9 ...
#include<iostream> #include<string.h> using namespace std; void MergeArray(int a[],i ...