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

假设每个输入只对应唯一的答案,而且不可以重复使用相同的元素。

返回两数的下标值,以数组形式返回

import java.lang.reflect.Array;
import java.util.Arrays;public class searchTarget {public static void main(String[] args) {System.out.println(Arrays.toString(twoSearch(new int[]{1,4,6,7,8,20,21},7)));System.out.println(Arrays.toString(bf(new int[]{1,4,6,7,8,20,21},7)));System.out.println(Arrays.toString(twoPoin(new int[]{1,4,6,7,8,20,21},7)));}//暴力算法public static int[] bf(int[] numbers,int target){for (int i = 0; i <numbers.length ; i++) {int low =i, hight = numbers.length-1;for (int j = i+1; j <numbers.length ; j++) {if (numbers[i] + numbers[j] == target){return new int[]{i,j};}}}return null;}//二分查找数组中两个数是否大于targetpublic static int[] twoSearch(int[] numbers,int target){for (int i = 0; i < numbers.length; i++) {int low =i, hight = numbers.length-1;while(low <= hight){int mid = low + (hight - low)/2;if (numbers[i] == target - numbers[mid]){return new int[]{i,mid};}else if(numbers[i] > target - numbers[mid]){hight = mid -1;}else{low = mid +1;}}}return new int[]{0};}//双指针算法public static int[] twoPoin(int[] numbers,int target){int low = 0, hight = numbers.length-1;while(low<hight){if (numbers[low] + numbers[hight] == target){return new int[]{low,hight};}else if (numbers[low] + numbers[hight] > target){hight --;}else if (numbers[low] + numbers[hight] < target){low ++;}}return null;}
}

求两数之和(三种解法)相关推荐

  1. python的return语句求两数之和_程序题(python解)

    PyCharm整理代码:Ctrl+Alt+l list行数:len(list) list列数:len(list[1]) 笔试常使用到的功能: 1.单独取出一长串字符中每个单独的字符: 输入'abcd' ...

  2. 基础数学(二)两数之和 三数之和

    目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返 ...

  3. 《漫画算法2》源码整理-6 两数之和 三数之和

    两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...

  4. leetCode刷题第一天--求两数之和

    两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使 ...

  5. 不使用算术运算符(+/-)怎么求两数之和?

    今天遇到了这样一个题 题目说了不能用算数运算符,那么我们就只能从 逻辑运算符 和 移位运算符 入手了. 我们知道 ^ (异或)操作是对两个数进行无进位求和,如果两个数相加本来就不产生进位,那么该和就是 ...

  6. python用链表求两数之和_python 算法 - 008 计算两个链表所代表的整数之和 (整数相加法)...

    python 算法 - 008 计算两个链表所代表的整数之和 (整数相加法) 知之者不如好之者, 好之者不如乐之者.--<雍也> 知道德者不如好道德者, 好道德者不如乐道德者, 是为形容人 ...

  7. python的return语句求两数之和_Python的return语句可以返回多个不同类型的值

    [多选题]体内能源的储存方式有 [简答题]简述降低大体积水化热温升,减少水泥用量应采取哪些措施? [多选题]与体温的正常变动有关的因素有 [单选题]某公司短期借款利息采取月末预提的方式核算,则下列预提 ...

  8. python求两数之和的命令_数学建模:科学计算Python2小时-Python基础

    这一部分主要面向数模活动中的python基础知识进行讨论 作者 系列文章(科学计算Python2小时)目录:李似:科学计算Python2小时-前言与目录​zhuanlan.zhihu.com 首先要说 ...

  9. python求两数之和的命令_python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...

最新文章

  1. 因一个计算机故障而“停工”!观测宇宙 30 多年的哈勃太空望远镜还能坚持多久?...
  2. 推荐的讲解算法的网站、好博客:
  3. linux块设备驱动(一)——块设备概念介绍
  4. php后台如何连接网口打印机_如何设置斑马网络打印机的网卡IP地址
  5. python矩阵教程_numpy教程:矩阵matrix及其运算
  6. 【C语言进阶深度学习记录】三十九 C语言中的可变参数(参数可变的函数)
  7. Linux创建名为vgtest的分区,第五周作业,
  8. LLVM每日谈之一 LLVM是什么
  9. Num43 oracle(子查询: 集合查询:处理数据:创建和管理表: 其他数据库对象)...
  10. 鸟类的视力很惊人,如何从高空中发现食物
  11. 小电流接地系统配电线路弧光高阻接地故障电压特征分析ATP-EMTP仿真建模
  12. 数据库系统常用的数据模型
  13. 使用visdom三维可视化图像。
  14. 计算机电源供电方式,电脑主板开关电源供电方式图文介绍
  15. Mac苹果电脑安装软件显示:映像数据已损坏的解决办法
  16. Django操作数据库
  17. SQL语法笔记和常用技巧收集
  18. 基于android餐馆点餐系统报告感想,基于Android的餐厅点餐系统的设计与实现
  19. c语言中格式符号错误,C语言中符号格式说明
  20. 软件测试mysql面试题:int(20)中20的涵义?

热门文章

  1. 关于如何求素数(拭除法第五种)
  2. After Effects (AE)2021软件下载及安装教程。
  3. LeaFlet结合leaflet-dvf实现数据可视化
  4. 结婚那天,妈问我:角落里的两个人是谁?嫌足你的泪水...
  5. 在VS2013中开发QT,提示include ui_XXX.h文件错误
  6. 花开过——但不在雨季(灵感之作)
  7. 一位程序员爸爸抵制编程教育:“我不会教孩子学编程”
  8. 数论 代数 群论 范畴论 与 函数式编程 Haskell, Scala
  9. url抓取图片存入本地 c#
  10. 【Unity】在Unity下使用websocket的一些经验