`
javatome
  • 浏览: 837346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

第14题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。

C# codes as below:

using System;

namespace ConsoleApp

{

class RunClass

{

static void Main()

{

int[] array = { 1, 2, 3, 5, 6, 7, 9, 10, 12, 13 };

new Helper().Print(array,11);

Console.ReadLine();

}

}

class Helper

{

public void Print(int[] array, int number)

{

if (array.Length == 0 || array == null)

return;

int lowIndex = 0;

int highIndex = array.Length-1;

while (lowIndex < highIndex)

{

if (array[lowIndex] + array[highIndex] < number)

{

lowIndex++;

}

else if (array[lowIndex] + array[highIndex] > number)

{

highIndex--;

}

else

{

Console.WriteLine("{0} {1}", array[lowIndex], array[highIndex]);

lowIndex++;

highIndex--;

}

}

}

}

}

分享到:
评论

相关推荐

    华科计算机保研复试机试题目

    * 题目 3:输入一个字符串,建立一个二叉排序树,并中序遍历输出 + 知识点:二叉树数据结构、树遍历算法、中序遍历 其他年份题目 * 题目 1:给出年分 m 和一年中的第 n 天,算出第 n 天是几月几号 + 知识点:...

    c语言数组练习题及答案

    编写一个函数`int fun(int a[], int n, int b[])`,该函数接收一个整型数组`a[]`、其长度`n`和另一个整型数组`b[]`作为参数。该函数按照元素最后三位数字的大小进行排序,并且当最后三位相同的情况下按元素本身的...

    依次去掉n中的某一位数字,得到m个整数,并将这m个整数按从小到大的次序排列后输出.docx

    在这个编程问题中,我们需要实现一个程序来处理一个正整数,按照特定的规则生成一系列新的整数,并将它们按升序排列输出。这个问题涉及到的主要知识点包括C++编程、一维数组的操作、冒泡排序算法以及输入输出的处理...

    上海电机学院C语言实训答案

    (1)编写一个程序实现如下功能:一个整型数组有10个元素,删除所有值为n的元素。要求: ① 主函数完成n的输入,数组元素输入以及删除后数组元素的输出。 ② 删除功能用子函数完成。 (2)编写一个程序实现如下功能...

    数组排序和计算练习.zip_trickyua_数组排序和计算练习

    在编程领域,数组排序和计算是基础且重要的概念,尤其对于初学者来说是掌握编程技能的关键环节。在给定的“数组排序和计算练习”中,我们主要涉及到以下几个知识点: 1. **数组(Array)**:数组是编程中最基本的...

    _leetcode-python.pdf

    - Regular Expression Matching: 给定一个输入字符串和一个模式,实现支持'.'和'*'的正则表达式匹配。 - Container With Most Water: 给定一个数组,其中每个元素代表一个宽度为1的柱子高度,要求找出两个柱子,使得...

    华科复试机试题目

    3. 建立一个升序链表并遍历:该题目考察了链表和排序算法的应用。 2002年 1. 编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符:该题目考察了字符串...

    脑力保健 微软,GOOGLE等试题试做 C#版

    题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、...

    C语言技能考试题目-程序改错.pdf

    在题号2中,需要在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。 * 输入数字:scanf("%d",&number) 需要在printf语句后面。 * 排序算法:需要使用循环来找到插入的位置,并将数组元素向后...

    c语言作业题

    - **解析**: 输入四个整数并按升序排序输出。此题要求学生掌握简单的排序算法,如冒泡排序,并结合if语句进行数值比较。 **E18. if语句** - **知识点**: 条件判断、逻辑运算。 - **解析**: 具体题目未给出,但此类...

    南京理工大学考研计算机复试上机题目

    1. **题目**:从键盘输入一个带有数字的字符串,将其中数字所在的位置输出,并把字符串小写字母变大写再输出。例:输入`ab2cd3ef4`按回车输出`369AB2CD3EF4`。 - **知识点**: - 字符串遍历 - 字符大小写转换 - ...

    C语言竞赛题

    在这个例子中,有两个已经升序排列的序列,目标是将它们合并成一个新的升序序列。通过比较两个序列中的元素,较小的元素被优先选取并放入结果序列中,直到其中一个序列的所有元素都被处理完,然后将另一个序列的剩余...

    数组序号转换(排序+map)1

    数组序号转换问题是一个常见的算法问题,主要涉及数组操作、排序和哈希映射。在LeetCode中,这个问题可以通过多种方法解决,其中一种是通过排序和使用哈希映射(unordered_map)的方法,如给定的代码所示。下面将...

    数字黑洞 c语言

    对于题目中的“数字黑洞”问题,其核心思想是针对一个五位数,将其数字进行重新排序以获得最大值和最小值,然后计算两者之差。这一过程不断重复,最终所有的数字都会陷入一个固定的循环中,这个循环被称为“数字黑洞...

    基于c++关于数组算法剖析

    3. **连接数组元素**:排序完成后,数组的元素已经按照降序排列,现在可以将它们连接成一个字符串。C++的`std::ostringstream`类可以方便地将整数转换为字符串并连接起来: ```cpp std::ostringstream oss; for ...

    华软C语言答案-实验8-数组 (2).doc

    这个程序首先定义了一个长度为101的字符数组`str`用于存储用户输入的字符串。然后,通过遍历字符串,利用`isalpha()`、`isdigit()`、`isspace()`和`ispunct()`四个函数来检查字符类型,并根据类型增加相应的计数器`a...

    数据结构(java版)习题解答

    - **题目**:判断一个数组是否已经按升序排列。 - **解答**:遍历数组,比较相邻元素,确保前一个不大于后一个。 **实验1.3:用递归算法求两个整数的最大公因数** - **题目**:使用递归来求解两个整数的最大公因数...

    JAVA经典练习题 JAVA经典练习题

    * 编写一个截取字符串的函数,输入为一个字符串和一个整型数字,输出为按整型数字为长度截取的字符串序列(题目11) 五、高级主题 * 编写Java代码,按书籍价格进行升序排序,如果价格相同按书名升序排序,并将排序...

    缺失的数字(排序+一次遍历)1

    在给定的编程题目“缺失的数字(排序+一次遍历)1”中,目标是找到一个数组`nums`中缺失的那个整数,数组包含了从0到n的其他所有整数,其中n是数组的长度。这是一个经典的数学与算法问题,可以使用多种方法解决,而...

    C语言程序设计课程C语言上机考试题—2013.docx

    13. **插入排序**:将一个数插入到已排序的数组中,保持数组升序,涉及数组操作和排序算法。 14. **折半查找**:在升序数组中使用二分查找法查找目标值,提高搜索效率。 15. **字符串截取**:`substr`函数用于从...

Global site tag (gtag.js) - Google Analytics