首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏M不作声

    之和与三之和

    之和 ❝输入一个递增排序的数组和一个数字s,在数组中查找个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。 ❞ 「对撞双指针」 在数组的左右各有一个指针,向中间遍历。 指针指向的和为s,则s=nums[i]+nums[j],判断s和target的大小: s>target,则右指针向左移,j=j-1 s<target,则左指针向右移,j=j+1 s=target,返回 空间复杂度上来看,使用Map会额外创建O(n)的空间;双指针法创建个指针,空间复杂度为O(2n)。 三之和 ❝有一个整数数组 nums,判断 nums 中是否存在三个元素 a,b,c 的和为0,找出所有符合条件且不重复的三元组。 之和,我们使用了双指针法,将O(n2)的时间复杂度降低到了O(n),在这个问题里,我们可以使用遍历+双指针,将原本O(n3)的时间复杂度降低到O(n2)。

    62130发布于 2021-01-07
  • 来自专栏赵俊的Java专栏

    之和

    题意 给一个整数数组,找到个数使得他们的和等于一个给定的 target。 你需要实现的函数 twoSum 需要返回这个数的下标, 并且第一个下标小于第二个下标。 思路 可以用一个 Map 集合,遍历数组,先记录下当前与目标的差值与角标,然后寻找与这个差值相同的,找到后,将这个数的角标加 1 后返回即可。 numbers[i], i); } int[] nums = {}; return nums; } } 原题地址 LintCode:之和

    77830发布于 2018-06-04
  • 来自专栏Jasper小笔记

    之和

    01 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。 但是,数组中同一个元素不能使用遍。 7, 11, 15], target = 9 输出:[0, 1] 因为 nums[0] + nums[1] = 2 + 7 = 9 02 暴力枚举 这里想必大家很快就能得到思路也就是双指针遍历所有相加判断是否与目标值相等 return new int[]{i, j}; } } } return new int[0]; } 03 Hash表 但实际上按照上面我们去到数组当中找个数相加为目标值的方式也就是在确定

    44430发布于 2021-01-18
  • 来自专栏kyle的专栏

    之和

    题目 难度级别:简单 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。 但是,数组中同一个元素不能使用遍。

    40700发布于 2020-11-29
  • 来自专栏个人技术笔记

    之和

    当新元素进入时,判断map的key中是否已经存在这个key了,如果存在,则将这个key对应的坐标拿出      * 并且把当前数组的坐标也取出来,形成一组对应数据,本例中因为index是从1开始的,故个数据都加上了 当新元素进入时,判断map的key中是否已经存在这个key了,如果存在,则将这个key对应的坐标拿出      * 并且把当前数组的坐标也取出来,形成一组对应数据,本例中因为index是从1开始的,故个数据都加上了

    29130编辑于 2022-10-30
  • 来自专栏用户4456933的专栏

    之和

    之和 给你个 非空 的链表,表示个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这个数都不会以 0 开头。 示例 1: ? 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. :[8,9,9,9,0,0,0,1] 提示: 每个链表中的节点数在范围 [1, 100] 内 0 <= Node.val <= 9 题目数据保证列表表示的数字不含前导零 思路: 首先取出“+”左右个数的最低位 ; 其次求出他们的和并作为输出结果的最低位; 考虑优化:我们都知道的第一点是加法运算是有进位的,所以使用 carry 来保存进位的结果; 临界值判断:当个链表长度不一样的时候,总会有 有值 和 null

    57340发布于 2021-06-01
  • 来自专栏面试经验贴

    之和

    一 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。 2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 2 思路1---暴力解法 我们需要在一个数组nums中寻找个数 ,然后呢这个个数之和需要等于目标的值。 ok,我的外层循环从第一个开始遍历,内层循环从第二个遍历,如果这个数和等于目标值,我就返回下标,问题来了,我要返回下标,所以需要先暂存起来才方便,而且返回的类型也需要确定。 至此,咱们想想如何解决三之和的问题呢? 5 结尾 希望读者和咱一起一步一个脚印去把基础知识打牢固。

    53720发布于 2020-06-05
  • 来自专栏青益云记

    「  之和  」

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

    27410编辑于 2023-01-03
  • 来自专栏计算机视觉理论及其实现

    之和

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

    29840编辑于 2023-11-03
  • 来自专栏C语言基础

    之和 ? 三之和? 四之和? 统统搞定

    ) 题目描述 示例 (2)解题思路 (3)代码展示: 二、三之和 (1) 题目描述 示例 (2)解题思路 (3)代码展示: 三、四之和 (1) 题目描述 示例: (2)解题思路 (3)代码展示: 一 v[1]=price[right]; break; } } return v; } }; 二、三之和 (2)解题思路 为了让我们更好的寻找,排序是有利于提高我们的查找效率的。 要找到3个的和为0,我们只需要固定一个(end),然后找到个数的和为-end即可。 while (end - 1 > 0 && nums[end] == nums[end + 1]) end--; } return vv1; } }; 三、四之和 如果直接写第四题,我们可能无法下手,但是有了前个的铺垫,现在写应该不算太困难了。 秘诀: 四之和转化为三之和。 三之和转化为之和

    26910编辑于 2024-01-07
  • 来自专栏指点的专栏

    leetcode 之和、三之和、最接近的三之和、四之和

    之和 题目链接:之和 给定一个整数数组和一个目标值,找出数组中和为目标值的个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 题目链接:三之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? 之后设立双指针头尾同时扫描数组右边剩下的,如果找到个数和为外层循环中以确定的相反,那么存入解,并且去除 start 和 end 重复。 之后双指针扫描数组右边剩下的,找到个和为已确定数的相反个数 for (int i = 0; i < size - 2; i++) { start = i 题目链接: 最接近的三之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。

    2.9K31发布于 2019-01-18
  • 来自专栏全栈程序员必看

    之和之积

    已知个1~30之间的数字,甲知道之和,乙知道之积。 甲问乙:”你知道是哪个数吗?”乙说:”不知道”; 乙问甲:”你知道是哪个数吗?” 甲说:”也不知道”; 于是,乙说:”那我知道了”; 随后甲也说:”那我也知道了”; 这个数是什么? 答案: 答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6 答案2:为x=1,y=8;甲知道和A=x+y=9,乙知道积B=x*y=8 解: 设这个数为x,y 甲知道之和 A=x+y; 乙知道之积 B=x*y; 该题分种情况 : 允许重复, 有(1 <= x <= y <= 30); 不允许重复,有(1 <= x < y <= 2)由题设条件:甲不知道答案 <=> A=x+y 解不唯一 => A >= 5; 分种情况: A=5,A=6时x,y有双解 A>=7 时x,y有三重及三重以上解 假设

    60130编辑于 2022-08-31
  • 来自专栏祥子的故事

    之和(二)

    题目:给定一个整型的数组,找出其中的个数使其和为某个指定的值,并返回这个数的下标(数组下标是从0开始)。假设数组元素的值各不相同,则要求时间复杂度为O(n),n为数组的长度。 = 2*A[i]){ //获取结果的个下标 res[0] = i; res[1] == hm.get(target - A[i]

    50340发布于 2019-02-18
  • 来自专栏Jacob

    【LeetCode】之和

    package leetcode.editor.cn; //给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 个 整数,并返回他们的数组下标。 但是,数组中同一个元素不能使用遍。 Topics 数组 哈希表 import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class 之和 { public static void main(String[] args) { Solution solution = new 之和().new Solution(); int[] return new int[]{map.get(temp),i}; } map.put(nums[i],i); } return null; } /** * 方法二:遍哈希表

    39420发布于 2020-08-05
  • 来自专栏爱敲代码的猫

    之和(TwoSum)

    我工作2年已经感觉到危机感,正准备同时这面临着个问题了,不如蹭现在还有来得及一起去把算法练起来吧,光看可不行得练。 GitHub: https://github.com/aquanlerou/leetcode 之和(TwoSum) 首先我们先看看题目描述: 给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 个 整数,并返回他们的数组下标。 遍历数组相加得出结果 循环中判断是否与目标相等 相等跳出循环,记录数值的位置 不相等继续循环相加 最后把记录的数值return返回 上代码: public int[] twoSum(int[] nums

    1.4K30发布于 2019-12-18
  • 来自专栏Java爬坑系列

    【LeetCode】之和

    题目说明 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解题思路1:穷举法 从题目意思理解,就是从给定的整数数组中找到个整数 ,使得它们的和与给定的相等。 我们再来分析一下上面的穷举算法,要从一个集合中找出个数,使得它们的和与给出的target相等,使用穷举算法时,当我们选出第一个a后,需要循环遍历之后的,然后一一进行加和判断,但实际上,我们只需要知道剩下的里 如果target减去当前遍历数值后的不存在于map中,则将当前数值与序号的映射关系存入map中。也许你会问,那找到第一个要寻找的时,第二个显然还不在map中,那怎么办呢?

    63110发布于 2019-05-25
  • 来自专栏Debug客栈

    Leetcode 之和

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

    41220发布于 2019-12-24
  • 来自专栏小浩算法

    漫画:之和

    同时,在这样一个特殊的节日里,我们为大家带来一道非常经典的题目(之和)。希望大家在酒过三巡之后,仍然可以快速解题,保持学习与进步以及头脑的清醒! 01 题目分析 第1题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。 就是我们要找的个数组下标。

    31930发布于 2020-03-31
  • 来自专栏全栈程序员必看

    Python – 之和

    给定列表a和一个目标值target,求列表中之和为target的值的索引; a = [1,5,6,8,9,4,5,6,3,2,1,7,5,6,9,8,4,5,6,2,1,0,1,2,0,1,2,5,9,10

    54210编辑于 2022-08-18
  • 来自专栏小丑的小屋

    Leetcode之和

    image.png 最开始看到简单个字,还是信息十足。但是读了3遍题目之后,整个人都沙雕了,扪心自问“我这也太菜了吧,读了3遍题目,脑子一片空白"。 image.png 我的天呐,这也行,但是越想越不对劲,题目中有一句话数组中同一个元素不能使用遍,我这个写法存在同一元素使用多次的问题,这就不太开心了,继续发奋图强。 既然同一元素不能使用遍,那么改变思路,设置一个空的集合,使用目标值减去数组中的值,结果如果存在于集合中那么返回下标,如果不存在放到集合中,因为Set集合会自动去重,所以就不再在同一元素的问题了。

    38010发布于 2020-09-20
领券