首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LeetCode:两次求和(错误:返回数组)

LeetCode: 两次求和(错误:返回数组)

这个问题是一个算法题,要求给定一个整数数组和一个目标值,找出数组中两个数的和等于目标值的索引。但是题目中提到的错误是返回数组,而不是返回索引。

解决这个问题可以使用两种方法:暴力法和哈希表法。

  1. 暴力法: 暴力法是最简单直接的方法,通过两层循环遍历数组中的每个元素,找到两个数的和等于目标值的情况。具体步骤如下:
    • 遍历数组中的每个元素,记当前元素为num1。
    • 在剩余的数组元素中查找是否存在目标值减去num1的元素,记为num2。
    • 如果存在num2,则返回num1和num2在数组中的索引。
    • 如果不存在num2,则继续遍历下一个元素。
    • 如果遍历完整个数组都没有找到满足条件的两个数,则返回空数组。
    • 这种方法的时间复杂度为O(n^2),其中n是数组的长度。
  • 哈希表法: 哈希表法利用哈希表的快速查找特性,可以将查找的时间复杂度降低到O(1)。具体步骤如下:
    • 创建一个空的哈希表。
    • 遍历数组中的每个元素,记当前元素为num1。
    • 在哈希表中查找是否存在目标值减去num1的元素,记为num2。
    • 如果存在num2,则返回num1和num2在数组中的索引。
    • 如果不存在num2,则将num1添加到哈希表中。
    • 如果遍历完整个数组都没有找到满足条件的两个数,则返回空数组。
    • 这种方法的时间复杂度为O(n),其中n是数组的长度。但是需要额外的空间来存储哈希表。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能机器学习平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(TPNS):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python 求中心索引,第二种方法不可取!

    1 题目 今天,我们做一道 LeetCode 题目,开启咱们 【算法刷题日记】知识星球的第一道 LeetCode 题。题目的基本类型是 数组,考察点数组的索引、求和等,基本的算法分析能力。...Day6 打卡题:LeetCode :Find Pivot Index 给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。...我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,那么我们应该返回 -1。...如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。...因为每迭代一次,都要 sum 求和两次,而 sum 求和本质也是一个循环,所以相当于嵌套 for 循环。 我们需要思考,是否有必要每次都要求和,显然是不必要的。

    48410

    985学历真好用,一面再差也不挂

    一、题目描述 给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次返回删除后数组的新长度。...类似的算法题 LeetCode 第 26 号问题:“删除排序数组中的重复项”:允许每个元素最多出现一次,需要进行单个元素的去重操作。...., nk]这样的数组即为符合要求的数组(这个结论很容易用反证法证明),使用等差数列求和公式可知该数组的和为 k + 2k + 3k + ... + nk = (1 + 2 + 3 + ... + n)...关于等差数列求和公式和最大公约数相关内容,可详见算法训练营文档常用数学概念、公式、方法汇总 易错点 在计算数组元素之和时,需要注意使用长整型来避免溢出。...在输入 n 和 k 时,需要确保输入的是整数类型,否则会导致运行时错误

    14410

    Leetcode -643.子数组最大平均值Ⅰ -645.错误的集合】

    Leetcode -643.子数组最大平均值Ⅰ 题目:给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。...return maxsum / k; } Leetcode -645.错误的集合 题目:集合 s 包含从 1 到 n 的整数。...不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。...请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。...ret[0] = i; if (hash[i] == 0) ret[1] = i; } //返回数组

    11610

    LeetCode刷题实战80:删除排序数组中的重复项 II

    今天和大家聊的问题叫做 删除排序数组中的重复项 II,我们先来看题面: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii...题意 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次返回移除后数组的新长度。...样例 示例 1: 输入:nums = [1,1,1,2,2,3] 输出:5, nums = [1,1,2,2,3] 解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1,...示例 2: 输入:nums = [0,0,1,1,1,1,2,3,3] 输出:7, nums = [0,0,1,1,2,3,3] 解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为...:加一 LeetCode刷题实战67:二进制求和 LeetCode刷题实战68:文本左右对齐 LeetCode刷题实战69:x 的平方根 LeetCode刷题实战70:爬楼梯 LeetCode刷题实战

    28020

    leetcode错误的集合

    序 本文主要记录一下leetcode错误的集合 题目 集合 S 包含从1到 n 的整数。...不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。 给定一个数组 nums 代表了集合 S 发生错误后的结果。...你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。...来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/set-mismatch 著作权归领扣网络所有。...,求出总和,并计算每个元素的count,同时找出重复的元素,之后根据自然数求和公式与现有总和的差值及重复的元素计算得出缺失的元素。

    35920

    LeetCode209.滑动窗口算法原理图解(Kotlin语言):长度最小的子数组

    LeetCode209.滑动窗口算法原理图解(Kotlin语言):长度最小的子数组 题目: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 sum ≥ s 的长度最小的连续子数组...如果不存在符合条件的连续子数组返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。...如果不存在符合条件的连续子数组返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。...*/ /** * 常规思路:暴力破解 * * 时间复杂度:O(n^3) 对数组里的每一个元素,我们从它开始枚举所有的子数组,需要的时间为 O(n^2) 将每一个子数组求和的时间复杂度为:O(n...每个元素至多被访问两次,一次被右端点访问,一次被左端点访问。 空间复杂度: O(1) , left,right, sum, ans 以及 i这些变量只需要常数个空间。

    1.3K20

    算法篇:双指针之接雨水

    算法: 接雨水的题目在leetcode上面出现了两次,不过解法却很不相同,一类是简单的双指针使用场景;一类是栈的典型实用。 这类题目的关键在于对题目的理解,以及拆解成简单的问题。...题目2: 题目分析: 我们发现这种蓄水情况,需要先找到最高点,然后分别计算两边的蓄水情况,求和即可。 先找到数组里面最高的位置,然后从两边往中间靠拢,分别计算两边的数据之和。 1....高1<高2:从左往右,第一个高的入栈,后续比他小或等于的计算数值,求和; 2. 高1==高2:从左往右,算法同1 3....题目2: https://leetcode-cn.com/problems/trapping-rain-water/ ?...代码实现: /*算法: 先找到数组里面最高的位置,然后从两边往中间靠拢,分别计算两边的数据之和。

    50240

    三道【只出现一次的数】一文轻松搞定!

    为保证严谨性,文章中的所有代码均经过测试,大家可以放心食用 题目来源:leetcode 136只出现一次的数(简单),137只出现一次的数Ⅱ(中等)260只出现一次的数Ⅲ(中等) 只出现一次的数 给定一个非空整数数组...排序搜索法 这个方法也是特别容易想到的,我们首先对数组进行排序,然后遍历数组,因为数组中其他数字都出现两次,只有目标值出现一次,所以则让我们的指针每次跳两步,当发现当前值和前一位不一样的情况时,返回前一位即可...,当然我们需要考虑这种情况,当我们的目标值出现在数组最后一位的情况,所以当数组遍历结束后没有返回值,则我们需要返回数组最后一位,下面我们看一下动图解析。...求和法 这个方法也比较简单,也是借助咱们的 HashSet 具体思路如下,我们通过 HashSet 保存数组内的元素,然后进行求和(setsum),那么得到的这个和则为去除掉重复元素的和,我们也可以得到所有元素和...只出现一次的数Ⅲ 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。

    67810

    ☆打卡算法☆LeetCode 80、删除有序数组中的重复项 II 算法解析

    一、题目 1、算法题目 “给定一个有序数组,删除重复出现的元素,使每个元素最多出现两次返回删除后数组的长度。” 题目链接: 来源:力扣(LeetCode) 链接:80....删除有序数组中的重复项 II - 力扣(LeetCode) (leetcode-cn.com) 2、题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次返回删除后数组的新长度...// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。...使用一个指针遍历数组每一个元素是否应该保留,如果应该保留,那么指针就移动到该位置。 另一个指针就记录着最多出现两次的元素的个数。...三、总结 本题用了双指针解题,一个指针记录着当前最多 出现两次元素的个数。 另一个数组遍历整个数组

    34810

    Python 刷题笔记:位运算专题二

    我们接着看下其它题目: 题目一 「第 136 题:只出现一次的数字」 难度:简单 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。...再或者,我们对此列表求和,然后将其转化为集合,对集合求和再乘二,这两个数的差值即结果。 但这些思路都不满足题目中提到的「不使用额外空间」,我们来看看位运算的骚操作吧!...「位运算技巧:数字 a 与它本身按位异或结果为 0,与 0 按位异或结果为它本身,即 a ^ a = 0, a ^ 0 = a」 放到这题目里,出现两次的数字按位异或运算后为 0,那么只要把所有数接连按位异或运算一遍...题目二 「第 137 题:只出现一次的数字 II」 难度:中等 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。...) #链接:https://leetcode-cn.com/problems/power-of-two 题目分析 常规思路可以建立个 while 循环一直除以 2 取余数,若直到最后一直为 0 则返回

    1K20

    每天一道leetcode-80删除排序数组中的重复项 II

    昨天的题解 题目 每天一道leetcode-80删除排序数组中的重复项 II 分类:双指针 中文链接: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii...题目详述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次返回移除后数组的新长度。...你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。...// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。...>=2)那么count+=2(count用来记录最后的数组的长度是多少),nums[i+1] = nums[i]这行代码意思是要保留这个数字两次,所以把nums[i+1]和nums[i]都保留成这个重复数字两次

    54320
    领券