由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道算法题largest subsequence sum <= max
相关主题
求 Maximum Subarray divide and conquer 解法讨论个subarray sum的变种问题
[问一道题] maximum contiguous subarray with sum >= target number来道难一点的题
onsite遇到的几个面试题Maximum Sum of Increasing Sequence
请教一个facebook面试题问几道算法题
一道热门的 Google 面试题考古问几道题
[合集] 一道Google面试题问一个老数组题
这道题DP怎么做阿刚看了leetcode 上的maximum rectangular sub matrix那题
Leetcode 689居然是fb的高频题?Maximum Contiguous Subarray
相关话题的讨论汇总
话题: sum话题: int话题: maxsum话题: subarray
进入JobHunting版参与讨论
1 (共1页)
f******n
发帖数: 279
1
问一道面试题:
int array a[n] with all element 0<=a[i]<=1000,find the subarray with
the largest sum that is <= max and output the starting and ending index of
this subarray and the sum. If there is more than one such subarray ,
output the one with smallest starting index.
请问这个算最快?
i**********e
发帖数: 1145
2
请参考这里的讨论,O(N log N),a table + binary search:
http://www.mitbbs.com/article_t/JobHunting/31791913.html
f******n
发帖数: 279
3
能不能具体说下,看了半天也没看出头绪
谢谢了

【在 i**********e 的大作中提到】
: 请参考这里的讨论,O(N log N),a table + binary search:
: http://www.mitbbs.com/article_t/JobHunting/31791913.html

h*********n
发帖数: 11319
4
how can you remember so many problems...

【在 i**********e 的大作中提到】
: 请参考这里的讨论,O(N log N),a table + binary search:
: http://www.mitbbs.com/article_t/JobHunting/31791913.html

g******0
发帖数: 221
5
for the subsequence, does it have to be contiguous?

【在 f******n 的大作中提到】
: 问一道面试题:
: int array a[n] with all element 0<=a[i]<=1000,find the subarray with
: the largest sum that is <= max and output the starting and ending index of
: this subarray and the sum. If there is more than one such subarray ,
: output the one with smallest starting index.
: 请问这个算最快?

f******n
发帖数: 279
6
SOrry, the problem should be subarray insteady of subsequence.

【在 h*********n 的大作中提到】
: how can you remember so many problems...
i**********e
发帖数: 1145
7
这里我已经给出完整代码了(不过那题是 largest subarray sum >= max,思路是一样
的,代码作稍微修改就行):
http://www.mitbbs.com/article/JobHunting/31797225_0.html
基本思路就是先建立一个 cumulative sum array, where C[i] = Sum[0..i]
这是因为方便取出任何一个 subarray sum,例如 Sum[i..j] = C[j] - C[i-1].
(这里你要小心 Sum[0..0] 无法算出,一个简单解决方法是定义 C 为 size N+1.)
然后呢,对 C[] 排序。这时候你应该知道为什么 C 也应该保有原有的对应 index,因
为排序会导致之前的对应 index 都没法找回了。
排好序呢,就对 C 的每个置作循环。For each C[i], apply binary search to find
its corresponding j which satisfy the condition:
XXXXX
这个是这个题目的关键,至于怎样我懒得解释了,那个原贴已经解释的非常清楚。
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 f******n 的大作中提到】
: 能不能具体说下,看了半天也没看出头绪
: 谢谢了

h*********n
发帖数: 11319
8
这题比那题简单,因为都是正数
一遍scan就行了。
void scan(int A[], int n, int k){
int sum = 0;
int maxSum = 0;
int start = -1;
int end = -1;
int j=0;
while ((sum+A[j]) <= k && j sum += A[j];
j++;
}
start = 0;
end = j-1;
maxSum = sum;
int i=0;
while(j sum -= A[i];
while((sum+A[j]) <=k && j sum+=A[j];
j++;
}
i++;
if (sum > maxSum){
maxSum = sum;
start = i;
end = j-1;
}
}
cout< }

find

【在 i**********e 的大作中提到】
: 这里我已经给出完整代码了(不过那题是 largest subarray sum >= max,思路是一样
: 的,代码作稍微修改就行):
: http://www.mitbbs.com/article/JobHunting/31797225_0.html
: 基本思路就是先建立一个 cumulative sum array, where C[i] = Sum[0..i]
: 这是因为方便取出任何一个 subarray sum,例如 Sum[i..j] = C[j] - C[i-1].
: (这里你要小心 Sum[0..0] 无法算出,一个简单解决方法是定义 C 为 size N+1.)
: 然后呢,对 C[] 排序。这时候你应该知道为什么 C 也应该保有原有的对应 index,因
: 为排序会导致之前的对应 index 都没法找回了。
: 排好序呢,就对 C 的每个置作循环。For each C[i], apply binary search to find
: its corresponding j which satisfy the condition:

d*******l
发帖数: 338
9
我也想问这个问题。。
不过这题确实远比那题简单,就像你说的,O(n)就能出来,那题我看了半天才明白点意
思。。

【在 h*********n 的大作中提到】
: how can you remember so many problems...
s*****y
发帖数: 897
10
原文里面你提到你需要Max_index 和MIn_index,但是为什么最后你的code只有Max_
index呢,还在研究你的Code ing。。。。

【在 i**********e 的大作中提到】
: 请参考这里的讨论,O(N log N),a table + binary search:
: http://www.mitbbs.com/article_t/JobHunting/31791913.html

1 (共1页)
进入JobHunting版参与讨论
相关主题
Maximum Contiguous Subarray一道热门的 Google 面试题
刚电面完,分享两个题目[合集] 一道Google面试题
每次刷题都有新发现这道题DP怎么做阿
how to obtain a subarray whose sum is a specific given number?Leetcode 689居然是fb的高频题?
求 Maximum Subarray divide and conquer 解法讨论个subarray sum的变种问题
[问一道题] maximum contiguous subarray with sum >= target number来道难一点的题
onsite遇到的几个面试题Maximum Sum of Increasing Sequence
请教一个facebook面试题问几道算法题
相关话题的讨论汇总
话题: sum话题: int话题: maxsum话题: subarray