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

如何找到所有匹配的数字,在给定的数组中总和为'N'

在给定的数组中找到所有匹配的数字,使其总和为N,可以通过以下步骤实现:

  1. 遍历数组,使用两个指针i和j分别指向数组的起始位置。
  2. 初始化一个空数组result,用于存储所有匹配的数字组合。
  3. 在每一次遍历中,计算当前指针i和j之间的数字总和sum。
  4. 如果sum等于N,则将当前指针i和j之间的数字添加到result数组中。
  5. 如果sum小于N,则将指针j向后移动一位,继续计算新的sum。
  6. 如果sum大于N,则将指针i向后移动一位,继续计算新的sum。
  7. 重复步骤3到步骤6,直到遍历完整个数组。
  8. 返回result数组作为结果,其中包含了所有匹配的数字组合。

这个算法的时间复杂度为O(n),其中n是数组的长度。下面是一个示例代码实现:

代码语言:python
代码运行次数:0
复制
def findMatchingNumbers(arr, N):
    i = 0
    j = 0
    result = []
    
    while i < len(arr):
        if j < len(arr) and sum(arr[i:j+1]) == N:
            result.append(arr[i:j+1])
            j += 1
        elif j < len(arr) and sum(arr[i:j+1]) < N:
            j += 1
        else:
            i += 1
    
    return result

这个算法可以应用于各种场景,例如在一个数字序列中找到所有的子序列,使其总和为给定的目标值。对于更复杂的问题,可以使用动态规划或回溯等算法来解决。

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

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

相关·内容

  • 2022-12-22:给定一个数字n,代表数组长度,给定一个数字m,代表数组每个位置都可以1~m之间选择数字所有长度n

    2022-12-22:给定一个数字n,代表数组长度, 给定一个数字m,代表数组每个位置都可以1~m之间选择数字所有长度n数组,最长递增子序列长度3数组,叫做达标数组。...返回达标数组数量。 1 <= n <= 500, 1 <= m <= 10, 500 * 10 * 10 * 10, 结果对998244353取模, 实现时候没有取模逻辑,因为非重点。...// f、s、t : ends数组中放置数字!...// n : 一共长度! // m : 每一位,都可以1~m随意选择数字 // 返回值:i..... 有几个合法数组!...// 尤其是理解ends数组意义! fn number2(n: i32, m: i32) -> i32 { //repeat(vec!

    88650

    找到所有数组消失数字

    题目描述 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...示例 1: 输入: [4,3,2,7,8,2,3,1] 输出: [5,6] 解法 若按序不重复存放,则 n 个元素刚好存放于大小 n 数组,即每个下标 i 处存放元素值 i+1。...根据题目中描述,数组可能存在重复元素,且并未按序存放。所以不妨遍历数组,将每个元素调整到对应下标的位置,即将元素 k 存储于下标 k-1 处。然后遍历数组,元素值与下标不匹配即为消失元素数字

    65210

    找到所有数组消失数字

    题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。 找到所有 [1, n] 范围之间没有出现在数组数字。...您能在不使用额外空间且时间复杂度O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array 著作权归领扣网络所有...解题 题目要求不适用额外空间,不能使用map或者set了 不断交换当前数到他排序该在位置,或者他对应位置也是当前位置数值时,移动指针 最后遍历数组,不在位置上数即是答案 ?

    77230

    【每日leetcode】12.找到所有数组消失数字

    所有正数作为数组下标,置对应数组负值。那么,仍正数位置即为(未出现过)消失数字。 ——leetcode此题热评 前言 哈喽,大家好,我是一条。 糊涂算法,难得糊涂 今天你糊涂了吗?...找到所有数组消失数字 难度:简单 给你一个含 n 个整数数组 nums ,其中 nums[i] 区间 [1, n] 内。...请你找出所有 [1, n] 范围内但没有出现在 nums 数字,并以数组形式返回结果。...你可以假定返回数组不算在额外空间内。 Solution 「鸽笼原理」 由题意可得,1~n位置表示1~n个笼子,如果出现过,相应“鸽笼”就会被占掉,我们将数字负数表示被占掉了。...最后再遍历一遍,如果“鸽笼”正数就是没出现数字

    95320

    LeetCode 448.找到所有数组消失数字 - JavaScript

    题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度 O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...解法 1:哈希表 算法流程如下: 准备一个哈希表 map,结构是number-boolean 遍历原数组,将每个元素 map 值设为 true 从 1 到 n,检查map[i]是否 true。...若是 true,说明出现在原数组;否则是没出现过。 这个过程需要为哈希表开辟 O(N)空间,时间复杂度是 O(N)。...下标 i 元素符号,代表着值 i + 1 元素是否出现过,负号是出现过,正号是没出现过。 不需要开辟空间给哈希表,时间复杂度是 O(N)。

    96320

    ​LeetCode刷题实战448:找到所有数组消失数字

    算法重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊问题叫做 找到所有数组消失数字,我们先来看题面: https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array.../ Given an array nums of n integers where nums[i] is in the range [1, n], return an array of all the...给你一个含 n 个整数数组 nums ,其中 nums[i] 区间 [1, n] 内。请你找出所有 [1, n] 范围内但没有出现在 nums 数字,并以数组形式返回结果。...return ret; } } 好了,今天文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们支持是我最大动力 。

    37730

    【Leetcode -441.排列硬币 -448.找到所有数组消失数字

    给你一个数字 n ,计算并返回可形成 完整阶梯行 总行数。 示例 1: 输入:n = 5 输出:2 解释:因为第三行不完整,所以返回 2 。...0; } Leetcode - 448.找到所有数组消失数字 给你一个含 n 个整数数组 nums ,其中 nums[i] 区间[1, n] 内。...请你找出所有[1, n] 范围内但没有出现在 nums 数字,并以数组形式返回结果。...,以数组元素作为hash数组下标,并赋予1,表明这个数已经出现过 for (int i = 0; i < numsSize; i++) { hash[nums...[i]] = 1; } //遍历hash数组下标,从1到数组长度,如果有等于0,说明在数组没出现过,返回这个下标 for (int i = 1; i <

    10910

    Find All Numbers Disappeared in an Array(找到所有数组消失数字)

    Example: Input: [4,3,2,7,8,2,3,1] Output: [5,6] 给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次...找到所有 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...示例: 输入: [4,3,2,7,8,2,3,1] 输出: [5,6] 思路: 假设原数组是nums[0]=0,nums[1]=1...有序数组,现在题目可以想象成,把其中一些桶里面的数字改掉...遍历数组元素,将每个桶里元素还原,比如找到0,就标记0号桶,说明0元素出现过,货真价实没被篡改,出现1就标记1号桶,这个元素出现了没被篡改。...可以通过标记对应下标的桶负,说明这个桶里数字出现了,没被篡改。将所有数组遍历之后,没被标记桶对应数字被篡改了,也就是没出现

    12810

    Excel如何匹配格式化为文本数字

    标签:Excel公式 Excel,如果数字一个表中被格式化为数字,而在另一个表中被格式化为文本,那么尝试匹配或查找数据时,会发生错误。 例如,下图1所示例子。...图1 单元格B6以文本格式存储数字3,此时当我们试图匹配列B数字3时就会发生错误。 下图2所示是另一个例子。 图2 列A中用户编号是数字,列E是格式文本用户编号。...图5 列A是格式文本用户编号,列E是格式数字用户编号。现在,我们想查找列E用户编号,并使用相对应列F邮件地址填充列B。...图7 这里成功地创建了一个只包含数字新文本字符串,VALUE函数帮助下将该文本字符串转换为数字,然后将数字与列E值进行匹配。...图8 这里,我们同样成功地创建了一个只包含数字新文本字符串,然后VALUE函数帮助下将该文本字符串转换为数字,再将我们数字与列E值进行匹配

    5.5K30

    2024-06-26:用go语言,给定一个长度n数组nums和一个正整数k, 找到数组所有相差绝对值恰好k数组, 并

    2024-06-26:用go语言,给定一个长度n数组nums和一个正整数k, 找到数组所有相差绝对值恰好k数组, 并返回这些子数组中元素之和最大值。 如果找不到这样数组,返回0。...解释:好子数组第一个元素和最后一个元素绝对值必须 3 。好子数组有 [-1,3,2] 和 [2,4,5] 。最大子数组 11 ,对应数组 [2,4,5] 。...2.遍历输入数组 nums:对于数组每个元素 x: • 查找 x+k 是否 minS ,如果在,则更新 ans sum + x - minS[x+k] 与 ans 最大值。...• 查找 x 是否 minS ,如果不存在或者 sum 小于 minS[x],则更新 minS[x] sum。 • 更新当前总和 sum。...总额外空间复杂度也是 O(n),因为使用了一个 map 来存储元素之和特定值最小下标,当输入数组所有元素都不相差绝对值恰好 k 时,map 中最多会存储 n 个元素。

    5120

    【算法千题案例】⚡️每日LeetCode打卡⚡️——55.找到所有数组消失数字

    原题样例:找到所有数组消失数字 ????C#方法:排序 ????Java 方法:哈希 ????总结 ---- ????前言 ???? 算法题 ???? ????...原题样例:找到所有数组消失数字 给你一个含 n 个整数数组 nums ,其中 nums[i] 区间 [1, n] 内。...请你找出所有 [1, n] 范围内但没有出现在 nums 数字,并以数组形式返回结果。...C# 提交击败了58.36%用户 内存消耗:37.4 MB,在所有 C# 提交击败了8.56%用户 ---- ????...return ret; } } 执行结果 通过 执行用时:3 ms,在所有 Java 提交击败了100.00%用户 内存消耗:47.3 MB,在所有 Java 提交击败了55.49%用户

    23920

    2021-07-27:给定一个数组arr,长度N,arr值只有1

    2021-07-27:给定一个数组arr,长度N,arr值只有1,2,3三种。...arri == 1,代表汉诺塔问题中,从上往下第i个圆盘目前左;arri == 2,代表汉诺塔问题中,从上往下第i个圆盘目前;arri == 3,代表汉诺塔问题中,从上往下第i个圆盘目前右。...那么arr整体就代表汉诺塔游戏过程一个状况。如果这个状况不是汉诺塔最优解运动过程状况,返回-1。如果这个状况是汉诺塔最优解运动过程状况,返回它是第几个状况。...福大大 答案2021-07-27: 1-7汉诺塔问题。 1-6左→。 7左→右。 1-6→右。 单决策递归。 k层汉诺塔问题,是2k次方-1步。 时间复杂度:O(N)。...:= len(arr) return step(arr, N-1, 1, 3, 2) } // 0...index这些圆盘,arr[0..index] index+1层塔 // 在哪?

    1.1K10
    领券