题目

题链:剑指 Offer 57. 和为s的两个数字

题解

大佬详细题解:面试题57. 和为 s 的两个数字(双指针 + 证明,清晰图解)
最简单的就是暴力解法、直接双重循环、显然时间复杂度是O(n^2)是不可取的。使用哈希表稍微好点,由于数组是有序序列、所以我们可以使用双指针一个在前一个在后。
解法一:
使用哈希表

public int[] twoSum02(int[] nums, int target) {HashMap<Integer,Integer> map = new HashMap<>();for (int num : nums) {if (num >= target){break;}if (map.containsKey(num)){return new int[]{map.get(num),num};}map.put(target - num,num);}return new int[]{};}

解法二:双指针
因为是排好序的、所以一个从头开始一个从尾开始。

class Solution {public int[] twoSum(int[] nums, int target) {int l=0,r=nums.length - 1;while (l<r){int sum = nums[l] + nums[r];if (sum == target){return new int[]{nums[l],nums[r]};}if (sum > target) {r--;}else {l++;}}return new int[]{};}
}

(day 34 - 哈希表 or 双指针 )剑指 Offer 57. 和为s的两个数字相关推荐

  1. LeetCode_剑指 Offer 57. 和为s的两个数字(利用set、双撞指针两种思路 Java实现)

    题目描述:剑指 Offer 57. 和为s的两个数字 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:n ...

  2. 【算法】剑指 Offer 57. 和为s的两个数字

    1.概述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], tar ...

  3. [剑指Offer] 42.和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. [思 ...

  4. 剑指 Offer II 006. 排序数组中两个数字之和

    由于题目中数组已经排好序,所以可以用双指针 双指针: i=0,j=nums.size( )-1 当 i<j 时循环,当目标小于target时i++,当目标大于target时,j-- 当目标小于t ...

  5. 剑指offer:和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 解题思路 class Solution { public:v ...

  6. 《剑指offer》和为s的两个数字

    题目:输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 解析:由 ...

  7. 剑指Offer值和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 思路 l表示左侧位置,r表示右侧位置.不断向中间靠拢,如果a ...

  8. 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字

    [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...

  9. LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列

    剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...

  10. 【LeetCode】剑指 Offer 57 - II. 和为s的连续正数序列

    [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 文章目录 [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 一.求和公式 二.滑动窗口(双指针 ...

最新文章

  1. Java学习总结:16
  2. Thread.sleep(0):线程休眠0秒有什么意义!
  3. redis内部分享ppt
  4. php组装json数据包,php封装json通信接口详解及实例
  5. php str_replace 字符串替换
  6. ssl1759-求连通分量【图论,深搜,广搜】
  7. 十三、oracle 数据字典和动态性能视图
  8. VScode 常用快捷键
  9. 地图与输出之间的基准面发生冲突_【地图技巧】荒野乱斗: 全球锦标赛全地图英雄推荐...
  10. Oracle oci.dll 下载地址
  11. 信息学奥赛一本通1368 对称二叉树
  12. html如何转换成中文,html页面中如何将编码转换成中文的示例代码
  13. 3步上架iOS APP【2022最新教程】
  14. 微信账户如何解除对第三方应用的授权
  15. OSChina 周四乱弹 —— 妹子上班迟到的原因
  16. HOE-32020,23554-99-6用于染色DNA的蓝色荧光染料
  17. js鸡兔同笼35个头94只脚用 鸡有多少只兔有多少只?
  18. 数论 之 中国剩余定理(孙子定理)
  19. Unicode 和多字节字符集 (MBCS) 支持
  20. 熬了三个大夜利用Python开发一个炸金花小游戏,注意别玩上瘾了~~(附完整源码)

热门文章

  1. Session 的几种存储方式及优缺点
  2. Ubuntu13.04配置优化(二)转贴
  3. 张樟兴策略分析:数据库营销顾客
  4. 这是不是微软MSN的一个Bug呢?
  5. 第6 章 面向对象的程序设计
  6. 文档流、脱离文档流分析
  7. 20. jQuery 遍历 - 祖先
  8. 55. Attribute name 属性
  9. php中的数值型字符串相加 相比较( ==)
  10. php中中文字符串的截取和获取长度 mb_substr() mb_strlen()