题目描述:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解法1:class Solution {    public int[] twoSum(int[] numbers, int target) {       int i = 0,j = numbers.length-1;        int[] nums = new int[2];        while(i<j)        {            if(numbers[i] + numbers[j] < target)            {                i++;            }            else if(numbers[i] + numbers[j] > target)            {                j--;            }            else if(numbers[i] + numbers[j] == target)            {                nums[0] = i+1;                nums[1] = j+1;                break;              }        }        return nums;    }}

解法2:二分法
private int binarySearch(int[] arr, int L, int R, int target) { while (L <= R) { int mid = L + (r - R) / 2; if (arr[mid] > target) { R = mid - 1; } else if (arr[mid] < target) { L = mid + 1; } else { return mid; } } return -1; }
public int[] twoSum_2(int[] numbers, int target) {for (int i = 0; i <= numbers.length - 2; i++) { int cur = numbers[i]; int find = target - cur; int findIndex = binarySearch(numbers, i + 1, numbers.length - 1, find); if (findIndex != -1) { return new int[] {i + 1, findIndex + 1}; } } return null; } 

转载于:https://www.cnblogs.com/zhangchuan1001/p/10597732.html

LeetCode题目:两数之和2相关推荐

  1. [leetcode]1.两数之和

    [leetcode]1.两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应 ...

  2. [hashmap|空间换时间] leetcode 1 两数之和

    [hashmap|空间换时间] leetcode 1 两数之和 1.题目 题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下 ...

  3. C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组

    C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...

  4. 【LeetCode】两数之和、三数之和、四数之和系列

    文章目录 两数之和★ 三数之和★★ 四数之和★★ 四数相加Ⅱ★★ 最接近的三数之和★★ 此篇文章总结下力扣中的两数之和.三数之和.四数之和及一系列求数组中满足达到目标值的元组个数的问题,仔细阅读下面的 ...

  5. LeetCode 1. 两数之和

    LeetCode 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入 ...

  6. 【前端来刷LeetCode】两数之和与两数相加

    大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...

  7. 力扣(leetcode)-1. 两数之和

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

  8. LeetCode 01两数之和02两数相加

    力扣 LeetCode01两数之和 LeetCode02两数之加 前言:第一次LeetCode打卡题解,前面组织的打卡活动从今天开始正式开始了,很多csdn和公众号小伙伴以及加入了,欢迎加入!详细看力 ...

  9. LeetCode 170. 两数之和 III - 数据结构设计(哈希map)

    文章目录 1. 题目 2. 解题 1. 题目 设计并实现一个 TwoSum 的类,使该类需要支持 add 和 find 的操作. add 操作 - 对内部数据结构增加一个数. find 操作 - 寻找 ...

  10. leetCode:twoSum 两数之和 【JAVA实现】

    LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...

最新文章

  1. Java设计模式之迭代器模式
  2. 如何发表高水平论文(转载,非常好)
  3. JAVA8的新特性之函数式接口
  4. Java案例:通过循环打印一颗爱心
  5. 计算机网络环境中学科教学,浅谈基于计算机网络环境下的农村小学的科学学科教育...
  6. c语言交换两个变量的值 讲课,用C语言的泛型实现交换两个变量值
  7. mongodb分片部署
  8. 洛谷P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles
  9. ImportError: No Module Named [x]
  10. linux kprobe rootkit学习
  11. Android——selector背景选择器的使用详解(二)
  12. windows7修改或删除曾经保存的远程桌面连接的密码
  13. 如何免费的把 PDF 转换为 Word文档?
  14. 极速还原 V4.0 简体中文绿色免费版
  15. 软考高级信息系统项目管理师经验分享
  16. 涨跌的例题用C语言编辑,涨跌比率指标用法及源代码(ADR)
  17. 教师资格证面试缴费找不到服务器,2016年教师资格证考试报名网上缴费常见问题...
  18. PC微信端浏览器js点击失效
  19. 抱薪者说 | 从零开始 ,社区年会诞生记
  20. oracle通过imp导出数据库时提示:这些对象由***导出,而不是当前用户解决方法

热门文章

  1. OCR文字识别软件的快速任务功能如何用
  2. 读取资源文件的工具.
  3. ubuntu 安装redis
  4. nginx处理web请求分析
  5. 致所有IT工程师的信(网络工程师的发展方向)
  6. C#的DLL注册为COM,VB来调用
  7. CentOS 7常用命令
  8. ccentos 7下安装php5.6并使用nginx + php-fpm部署多个不同端口网站
  9. [Jsoi2016]最佳团体 BZOJ4753 01分数规划+树形背包/dfs序
  10. 掌握 需求过程阅读笔记06