求两数之和(三种解法)
给定一个升序排列的整数数组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;} }
求两数之和(三种解法)相关推荐
- python的return语句求两数之和_程序题(python解)
PyCharm整理代码:Ctrl+Alt+l list行数:len(list) list列数:len(list[1]) 笔试常使用到的功能: 1.单独取出一长串字符中每个单独的字符: 输入'abcd' ...
- 基础数学(二)两数之和 三数之和
目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返 ...
- 《漫画算法2》源码整理-6 两数之和 三数之和
两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...
- leetCode刷题第一天--求两数之和
两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使 ...
- 不使用算术运算符(+/-)怎么求两数之和?
今天遇到了这样一个题 题目说了不能用算数运算符,那么我们就只能从 逻辑运算符 和 移位运算符 入手了. 我们知道 ^ (异或)操作是对两个数进行无进位求和,如果两个数相加本来就不产生进位,那么该和就是 ...
- python用链表求两数之和_python 算法 - 008 计算两个链表所代表的整数之和 (整数相加法)...
python 算法 - 008 计算两个链表所代表的整数之和 (整数相加法) 知之者不如好之者, 好之者不如乐之者.--<雍也> 知道德者不如好道德者, 好道德者不如乐道德者, 是为形容人 ...
- python的return语句求两数之和_Python的return语句可以返回多个不同类型的值
[多选题]体内能源的储存方式有 [简答题]简述降低大体积水化热温升,减少水泥用量应采取哪些措施? [多选题]与体温的正常变动有关的因素有 [单选题]某公司短期借款利息采取月末预提的方式核算,则下列预提 ...
- python求两数之和的命令_数学建模:科学计算Python2小时-Python基础
这一部分主要面向数模活动中的python基础知识进行讨论 作者 系列文章(科学计算Python2小时)目录:李似:科学计算Python2小时-前言与目录zhuanlan.zhihu.com 首先要说 ...
- python求两数之和的命令_python实现读取命令行参数的方法
本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...
最新文章
- 因一个计算机故障而“停工”!观测宇宙 30 多年的哈勃太空望远镜还能坚持多久?...
- 推荐的讲解算法的网站、好博客:
- linux块设备驱动(一)——块设备概念介绍
- php后台如何连接网口打印机_如何设置斑马网络打印机的网卡IP地址
- python矩阵教程_numpy教程:矩阵matrix及其运算
- 【C语言进阶深度学习记录】三十九 C语言中的可变参数(参数可变的函数)
- Linux创建名为vgtest的分区,第五周作业,
- LLVM每日谈之一 LLVM是什么
- Num43 oracle(子查询: 集合查询:处理数据:创建和管理表: 其他数据库对象)...
- 鸟类的视力很惊人,如何从高空中发现食物
- 小电流接地系统配电线路弧光高阻接地故障电压特征分析ATP-EMTP仿真建模
- 数据库系统常用的数据模型
- 使用visdom三维可视化图像。
- 计算机电源供电方式,电脑主板开关电源供电方式图文介绍
- Mac苹果电脑安装软件显示:映像数据已损坏的解决办法
- Django操作数据库
- SQL语法笔记和常用技巧收集
- 基于android餐馆点餐系统报告感想,基于Android的餐厅点餐系统的设计与实现
- c语言中格式符号错误,C语言中符号格式说明
- 软件测试mysql面试题:int(20)中20的涵义?
热门文章
- 关于如何求素数(拭除法第五种)
- After Effects (AE)2021软件下载及安装教程。
- LeaFlet结合leaflet-dvf实现数据可视化
- 结婚那天,妈问我:角落里的两个人是谁?嫌足你的泪水...
- 在VS2013中开发QT,提示include ui_XXX.h文件错误
- 花开过——但不在雨季(灵感之作)
- 一位程序员爸爸抵制编程教育:“我不会教孩子学编程”
- 数论 代数 群论 范畴论 与 函数式编程 Haskell, Scala
- url抓取图片存入本地 c#
- 【Unity】在Unity下使用websocket的一些经验