Lintcode90 K Sum || solution 题解

【题目描述】

Given n unique integers, number k (1<=k<=n) and target.

Find all possible k integers where their sum is target.

给定n个不同的正整数,整数k(1<= k <= n)以及一个目标数字。

在这n个数里面找出K个数,使得这K个数的和等于目标数字,你需要找出所有满足要求的方案。

【题目链接】

www.lintcode.com/en/problem/k-sum-ii/

【题目解析】

此题与Lintcode89类似。只是整数k的取值不同。

找两数之和是否为target,可以使用遍历。先来看看两数之和为target所对应的判断条件—— xi+xj=targetx_i + x_j = targetxi+xj=target, 可进一步转化为 xi=target−xjx_i = target - x_jxi=target−xj, 其中 iii 和 jjj 为数组中的下标。推理后便可将找两数之和转化为了找一个数是否在数组中。

基本思路有了,现在就来看看怎么实现,显然需要额外的空间(哈希表)来保存已经处理过的 xjx_jxj(注意这里并不能先初始化哈希表,否则无法排除两个相同的元素相加为target 的情况), 如果不满足等式条件,那么我们就往后遍历,并把之前的元素加入到哈希表中,如果target减去当前索引后的值在哈希表中找到了,那么就将哈希表中相应的索引返回即可。

【参考答案】

www.jiuzhang.com/solutions/k-sum-ii/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,778评论 0 33
  • 【题目描述】 Givenndistinct positive integers, integerk(k<=n) a...
    程风破浪会有时阅读 696评论 0 0
  • 前言 其实读完斯坦福的这本《互联网大规模数据挖掘》,让我感觉到,什么是人工智能?人工智能就是更高层次的数据挖掘。机...
    我偏笑_NSNirvana阅读 12,765评论 1 23
  • 知道你的困境 可我却无能为力 就像是一条溺水的鱼 死在了自己的海洋里 我有多难过 从来没能给你想要的 我只想要你好...
    婷宝Ivy阅读 207评论 1 1
  • deficitempiricalongoingchurlishrigidlegitripplefutilegran...
    EngScala阅读 264评论 0 0