`

java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字

 
阅读更多

public class TwoElementEqualSum {

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

	static void find(int[] a,int sum){
		int i=0;
		int j=a.length-1;
		while(i<j){
			if(a[i]+a[j]>sum){
				j--;
			}else if(a[i]+a[j]<sum){
				i++;
			}else{
				System.out.println(a[i]+"+"+a[j]+"="+sum);
				return;
			}
		}
		System.out.println("not found");
	}
}
0
1
分享到:
评论

相关推荐

    有一个已排好序的数组,今输入一个数,要求按排序的规律将它插入数组中。

    为了解决上述问题,我们需要实现一个函数或程序,该程序能够接收一个已排序的数组和一个待插入的新元素,然后将新元素正确地插入到数组中相应的位置,使得插入后数组依然保持原来的排序顺序。 #### 四、具体实现...

    JavaSE进阶-02-数组.pdf

    JavaSE进阶课程中,数组是一个重要的概念,它在编程中起到了存储一组相同类型数据的作用。数组被设计成一种引用数据类型,意味着它在内存中占据连续的空间,并且可以存储基本类型(如int、float)或引用类型(如对象...

    java递归的排序和查找,数组栈.....

    在查找算法中,深度优先搜索(DFS)就是一个使用栈的经典例子,它通过不断地将未访问过的节点压入栈中来遍历树形结构。 在排序方面,递归可以帮助我们实现各种高效的算法,如冒泡排序、选择排序、插入排序等的递归...

    Java中使用数组完成学生成绩统计的多种实现代码清单.pdf

    以下将详细讲解两个不同的Java代码方案,它们利用数组来完成学生成绩的统计。 ### 方案1 这个方案中,使用了一个二维数组`a`来存储学生的三门课程的成绩。数组的每一行代表一个学生,每一列代表一门课程。首先,...

    数组与字符串.docx

    数组是编程中常见的数据结构之一,在Java中,数组被广泛应用于存储同类型的数据集合。掌握数组的基本操作对于编写高效的程序至关重要。 1. **创建数组**: - 定义数组时,需要指定数组的数据类型以及数组的大小...

    java数组

    Java数组是Java编程语言中的...以上是Java数组的基础知识,学习并熟练掌握数组操作对于Java程序员至关重要,因为它们在各种算法和数据结构中都起着核心作用。通过深入理解和实践,可以更好地利用数组解决实际编程问题。

    java基础知识学习教程-5数组.pptx

    创建一个数组需要在内存中开辟出一块连续的合适的空间。声明一个数组时,需要指定数组的类型和名称,并且可以使用大括号{}来赋值。 二、数组的基本操作 数组的基本操作包括遍历数组、修改数组元素、删除数组元素。...

    JAVA通过数组按首字母排序

    在Java编程语言中,对字符串数组进行排序是一个常见的操作。本篇文章将详细介绍如何利用Java内置的`Arrays.sort()`方法按照字符串的首字母进行排序,以及如何处理大小写敏感性问题。 #### 一、基础知识简介 在开始...

    Java实验报告一java基础.doc

    - 在Java中,二维数组可以通过声明一个一维数组的数组来创建,例如`int[][] array = new int[2][3];` - 生成0到100之间的随机整数,可以使用`(int)(Math.random() * 100)`。 - 对数组进行排序,Java提供了`Arrays...

    Java数据结构--13.Java8数据结构TreeSet.pdf

    在Java集合框架中,TreeSet是一个重要的数据结构,它是Set接口的实现类之一,与HashSet和LinkedHashSet不同,TreeSet具有排序功能,这是因为其不仅继承自AbstractSet,还实现了SortedSet和NavigableSet接口。...

    西工大JavaUML实验报告二.doc

    - Sort.java用于比较和升序输出两个数,NumTest.java则筛选出能被3和7整除的数,这些例子展示了条件判断和循环控制的运用。 5. **数组操作** - ArrSort.java找出数组的最大值和最小值,SortAndFind.java实现数组...

    java数组与简单排序

    有序数组的一个常见应用是二分法查找,这是一种在有序数组中查找特定元素的有效方法。 线性查找,也称为顺序查找,是最简单的查找算法。在给定的数组中,它从头到尾遍历每个元素,直到找到目标元素或者搜索完整个...

    java-二分查找.rar

    在实际应用中,二分查找常用于字典、电话簿等场景,也可用于排序算法的优化,例如在归并排序中查找合并两个有序数组的分割点。 通过深入理解二分查找的原理和Java实现,开发者可以提高程序的运行效率,尤其在处理...

    Javabase练习题机试题型-1.doc

    4. **数组升序排序**:Java提供了`Arrays.sort()`方法可以对数组进行排序。对于给定的整数数组,可以直接调用这个方法。 ```java public void sortArray(int[] arr) { Arrays.sort(arr); } ``` 5. **直角三角形...

    java面试题-leetcode题解之第33题搜索旋转排序数组.zip

    第33题“搜索旋转排序数组”是一个经典的问题,它涉及到数组处理、二分查找以及对特殊情况的处理,这些都是Java开发者必备的技能。现在我们来深入探讨这个题目及其解法。 **题目描述:** 给定一个旋转排序的数组,...

    数组_参考答案.docx

    在Java中,可以通过`new`关键字和两个方括号来创建,如`double[][] buffer=new double[5][4];`表示一个5行4列的二维数组。 3. `System.arraycopy()`方法:第三题中,`System.arraycopy()`是Java的内置方法,用于将...

    java各种数组排序插入交换选择归类基数排序.pdf

    堆排序则利用了堆数据结构的特性,将待排序序列构造成一个大顶堆或小顶堆,然后进行调整以达到排序目的。 4. 归并排序: 归并排序是一种分治策略,将数组分成两个子数组,分别排序后再合并,保证了排序的稳定性。...

    java面试题-leetcode题解之第154题寻找旋转排序数组中的最小值II.zip

    第154题“寻找旋转排序数组中的最小值II”是这样一个挑战,它涉及到数组处理和二分查找的技巧。在此,我们将深入探讨这个题目,以及如何用Java解决它。 题目描述: 假设一个旋转排序数组的连续子数组在某个未知点...

    java 二分法查找案例与数组排序案例.docx

    在Java中,对数组进行排序是一项常见的操作,通常我们有两种排序方式:升序(从小到大)和降序(从大到小)。下面我们将分别介绍这两种排序方法的具体实现。 ##### 升序排序案例 ```java public class ArrayTest {...

    数组_参考答案.pdf

    最后一个例子是一个尚未完成的程序,目的是在一个已排序的数组中插入一个新数并保持数组的有序性。首先,通过`Scanner`获取用户输入的新数,然后插入到数组的适当位置,最后使用`Arrays.sort()`重新排序。然而,...

Global site tag (gtag.js) - Google Analytics