由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 那道经典的求和问题
相关主题
求解一道面试题A家一道题
给一堆points, 找到所有给定长度的正方形菜鸟向大家请教个面试题
报一个A家intern offer给定一个数组,找出3个数乘积最大。
感觉careercup的作者对DP的理解有问题数组三个数或四个数的和为给定值?
一个N个数的int数组如何找到3个majority的数?弱弱的问问 2sum, 3sum 的问题
求一面试题解答一道面试题的优化
问道小学题:两等长有序数组,求第k个数讨论CAIWU那道矩阵DP题的思路?
求教combination两种算法的complexity (leetcode)再讨论一个面试难题
相关话题的讨论汇总
话题: 个数话题: sum话题: 数组话题: 求和话题: 两个
进入JobHunting版参与讨论
1 (共1页)
r***u
发帖数: 241
1
就是一个数组中找两个数使得它们的和为一个给定的数。
今天被纠缠问了好久,先从两个数,推广到3个数,再到4个数,和k个数。
最后也不知道答对了没有,板上好像有讨论把?
p********7
发帖数: 549
2
2个数,先查 sum - a[i] 是否在hashtable里面,如果在就返回true,如果不在就插入a[i
] O(N)
3个数,有点不同,因为3个数有可能是一样的,这样查起来会有问题,所以先排序,处理了
特殊的有2个数重复,或者三个数重复的情况,再查 sum - a[i] - a[j]是不是在,复杂读
是O(N^2)
k个数就更复杂了,复杂度接近brute force 复杂度O(N^(k-1))
d*****t
发帖数: 41
3
类似楼上,但是用递归。
两个数,查sum-a[i],在HASHTABLE里就返回TRUE,不在就添加。
三个数,从数组中取出a[j],和数组最后一位a[N-1]交换位置。sum' = sum - a[N],然
后对数组的a[0]~a[N-2]位,换两个数求和处理。
比较直观,但是空间复杂性比较大
a****n
发帖数: 1887
4
O(N^(K/2))空间, O(N^((K+1)/2))时间

[i

【在 p********7 的大作中提到】
: 2个数,先查 sum - a[i] 是否在hashtable里面,如果在就返回true,如果不在就插入a[i
: ] O(N)
: 3个数,有点不同,因为3个数有可能是一样的,这样查起来会有问题,所以先排序,处理了
: 特殊的有2个数重复,或者三个数重复的情况,再查 sum - a[i] - a[j]是不是在,复杂读
: 是O(N^2)
: k个数就更复杂了,复杂度接近brute force 复杂度O(N^(k-1))

p********7
发帖数: 549
5
这个办法好

【在 d*****t 的大作中提到】
: 类似楼上,但是用递归。
: 两个数,查sum-a[i],在HASHTABLE里就返回TRUE,不在就添加。
: 三个数,从数组中取出a[j],和数组最后一位a[N-1]交换位置。sum' = sum - a[N],然
: 后对数组的a[0]~a[N-2]位,换两个数求和处理。
: 比较直观,但是空间复杂性比较大

t******h
发帖数: 120
6

刚看到careercup上的一个类似的题 输入group的size 计算size个数的和是指定的和
比如输入size=3 total=0 找出数组3个数的和为0
我想如果用递归的话
两个数可以再进行一次类似的递归 size=1了
这个时候就是找出数组剩下的元素中 是否含total了
不知道这样行不行 这样就不用建hash table了

【在 d*****t 的大作中提到】
: 类似楼上,但是用递归。
: 两个数,查sum-a[i],在HASHTABLE里就返回TRUE,不在就添加。
: 三个数,从数组中取出a[j],和数组最后一位a[N-1]交换位置。sum' = sum - a[N],然
: 后对数组的a[0]~a[N-2]位,换两个数求和处理。
: 比较直观,但是空间复杂性比较大

A*********r
发帖数: 564
7

是 sum' = sum - a[N-1]吧?

【在 d*****t 的大作中提到】
: 类似楼上,但是用递归。
: 两个数,查sum-a[i],在HASHTABLE里就返回TRUE,不在就添加。
: 三个数,从数组中取出a[j],和数组最后一位a[N-1]交换位置。sum' = sum - a[N],然
: 后对数组的a[0]~a[N-2]位,换两个数求和处理。
: 比较直观,但是空间复杂性比较大

1 (共1页)
进入JobHunting版参与讨论
相关主题
再讨论一个面试难题一个N个数的int数组如何找到3个majority的数?
[合集] 一道CS面试题求一面试题解答
有递归的算法如何算复杂度?问道小学题:两等长有序数组,求第k个数
攒rp,Amazon两轮电话面经求教combination两种算法的complexity (leetcode)
求解一道面试题A家一道题
给一堆points, 找到所有给定长度的正方形菜鸟向大家请教个面试题
报一个A家intern offer给定一个数组,找出3个数乘积最大。
感觉careercup的作者对DP的理解有问题数组三个数或四个数的和为给定值?
相关话题的讨论汇总
话题: 个数话题: sum话题: 数组话题: 求和话题: 两个