由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请大牛解释一下leetcode新题
相关主题
问一个给定的array 和一个sum value,找最小sub-array,谢谢问一个reverse int的问题
programming pears上的maximum subarray算法是不是有小bug?问一道amazon的Onsite题
关于Leetcode Maximum Subarray 的变种问题请教一个算法题:矩阵找子矩阵,使得sum最大
报个L家店面面经,求onsite bless火帖里边的一道M的题Subarray sum
请教一下leetcode #321. Create Maximum Number刷题刷习惯了,今天面试二了。。
Leetcode 689居然是fb的高频题?Maximum Contiguous Subarray
请大家帮忙分析一下这个程序的时间复杂性how to obtain a subarray whose sum is a specific given number?
请问软软的面试是什么样的?INTERVIEW会假定你见过问的问题吗?
相关话题的讨论汇总
话题: currmax话题: max话题: min话题: int话题: res
进入JobHunting版参与讨论
1 (共1页)
l****o
发帖数: 135
1
Maximum Product Subarray
找到这个solution比较简洁,但是不很明白,谁能帮忙解释一下?为啥不需要考虑负数?
http://leetcodesolution.blogspot.com/2014/09/leetcode-maximum-p
J*****a
发帖数: 46
2
它自己解释的已经很清楚了 不错的思路 不过不可以处理浮点数
另一种做法是维护以 i 结尾的最大负数和最大正数 可以处理浮点数
l*****a
发帖数: 14598
3
how about this one?
min[0]=max[0]=a[0];
for(int i=1;i max[i]=max(a[i],max[i-1]*a[i],min[i-1]*a[i]);
min[i]=min(a[i],max[i-1]*a[i],min[i-1]*a[i]);
result=Math.max(result,max[i]);
}

数?

【在 l****o 的大作中提到】
: Maximum Product Subarray
: 找到这个solution比较简洁,但是不很明白,谁能帮忙解释一下?为啥不需要考虑负数?
: http://leetcodesolution.blogspot.com/2014/09/leetcode-maximum-p

J*****a
发帖数: 46
4
明明是可以 O(1) 空间的

【在 l*****a 的大作中提到】
: how about this one?
: min[0]=max[0]=a[0];
: for(int i=1;i: max[i]=max(a[i],max[i-1]*a[i],min[i-1]*a[i]);
: min[i]=min(a[i],max[i-1]*a[i],min[i-1]*a[i]);
: result=Math.max(result,max[i]);
: }
:
: 数?

j*****8
发帖数: 3635
5
那个网页的解法为啥不能处理浮点数?

【在 J*****a 的大作中提到】
: 它自己解释的已经很清楚了 不错的思路 不过不可以处理浮点数
: 另一种做法是维护以 i 结尾的最大负数和最大正数 可以处理浮点数

J*****a
发帖数: 46
6
因为会有 (-1, 1) 之间的数

【在 j*****8 的大作中提到】
: 那个网页的解法为啥不能处理浮点数?
c********6
发帖数: 33
7
这个2,3,-2, 4会得到24吧
感觉dp没法线性时间解决这种连续的问题

【在 l*****a 的大作中提到】
: how about this one?
: min[0]=max[0]=a[0];
: for(int i=1;i: max[i]=max(a[i],max[i-1]*a[i],min[i-1]*a[i]);
: min[i]=min(a[i],max[i-1]*a[i],min[i-1]*a[i]);
: result=Math.max(result,max[i]);
: }
:
: 数?

l*****a
发帖数: 14598
8
let me know how u get that?
thanks

【在 c********6 的大作中提到】
: 这个2,3,-2, 4会得到24吧
: 感觉dp没法线性时间解决这种连续的问题

l****o
发帖数: 315
9
如果是奇数个负数,排除第一个负数和之前所有的数,乘剩下的,同理对最后一个负数。
偶数个和0的都很好处理。
c********6
发帖数: 33
10
不好意思,是我看错了~~~

【在 l*****a 的大作中提到】
: let me know how u get that?
: thanks

相关主题
Leetcode 689居然是fb的高频题?问一个reverse int的问题
请大家帮忙分析一下这个程序的时间复杂性问一道amazon的Onsite题
请问软软的面试是什么样的?请教一个算法题:矩阵找子矩阵,使得sum最大
进入JobHunting版参与讨论
y**********a
发帖数: 824
11

数。
对的,blog 上的算法就是对这个的改进。

【在 l****o 的大作中提到】
: 如果是奇数个负数,排除第一个负数和之前所有的数,乘剩下的,同理对最后一个负数。
: 偶数个和0的都很好处理。

q********c
发帖数: 1774
12
写了一个只用一个for循环的,通过了
class Solution {
public:
int maxProduct(int A[], int n) {
int currMax = 1, currMin = 1, maxAll = INT_MIN;
for(int i = 0; i < n; ++i) {
if(A[i] >= 0) {
currMax = currMax<=0?A[i]:currMax*A[i];
currMin = currMin*A[i];
}
else {
int temp = currMax;
currMax = max(currMin*A[i], A[i]);
currMin = min(temp*A[i], A[i]);
}
if(maxAll < currMax)
maxAll = currMax;
}
return maxAll;
}
};

数?

【在 l****o 的大作中提到】
: Maximum Product Subarray
: 找到这个solution比较简洁,但是不很明白,谁能帮忙解释一下?为啥不需要考虑负数?
: http://leetcodesolution.blogspot.com/2014/09/leetcode-maximum-p

b*********s
发帖数: 115
13
def maxProduct(self, a):
if not a:
return 1
res = max_e = min_e = a[0]
for x in a[1:]:
candidates = [max_e * x, min_e * x, x]
max_e = max(candidates)
min_e = min(candidates)
res = max(res, max_e)
return res
b******g
发帖数: 3616
14
刚看到这题,试着写了下,成功过了,C++:
int maxProduct(int A[], int n) {
if(n<1) return 0;
int res, Pmax, Pmin;
res = Pmax = Pmin = A[0];
for(int i=1; i int temp = max(max(Pmax*A[i],Pmin*A[i]),A[i]);
Pmin = min(min(Pmax*A[i],Pmin*A[i]),A[i]);
Pmax = temp;
res = Pmax>res ? Pmax : res;
}
return res;
}
不过感觉leetcode这题测试也不是很详细,做乘法应该还要检查overflow的问题吧,显
然我的代码还没考虑这点。
l*****a
发帖数: 14598
15

为什么这句不用 res=Math.max(Pmax,res)

【在 b******g 的大作中提到】
: 刚看到这题,试着写了下,成功过了,C++:
: int maxProduct(int A[], int n) {
: if(n<1) return 0;
: int res, Pmax, Pmin;
: res = Pmax = Pmin = A[0];
: for(int i=1; i: int temp = max(max(Pmax*A[i],Pmin*A[i]),A[i]);
: Pmin = min(min(Pmax*A[i],Pmin*A[i]),A[i]);
: Pmax = temp;
: res = Pmax>res ? Pmax : res;

b******g
发帖数: 3616
16
弱问这两种写法差别在哪?可读性?

【在 l*****a 的大作中提到】
:
: 为什么这句不用 res=Math.max(Pmax,res)

b******g
发帖数: 3616
17
这个solution的思路挺有意思的,但感觉复杂度上并没有比dp更有优势?而且理解起来
也没有dp这么直观似乎。特别是两个方向的循环扫描计算prod来涵盖p=0和p<0的情况还
是需要仔细想下才明白的。

数?

【在 l****o 的大作中提到】
: Maximum Product Subarray
: 找到这个solution比较简洁,但是不很明白,谁能帮忙解释一下?为啥不需要考虑负数?
: http://leetcodesolution.blogspot.com/2014/09/leetcode-maximum-p

h*******e
发帖数: 1377
18
O(1) 一个pass 就可以拉。
w*******i
发帖数: 186
b******g
发帖数: 3616
20
这个blog解答的code略长啊。。。。。
直接被第二个思路的code长度吓尿了-_-!

【在 w*******i 的大作中提到】
: http://blog.csdn.net/whuwangyi/article/details/39577455
1 (共1页)
进入JobHunting版参与讨论
相关主题
INTERVIEW会假定你见过问的问题吗?请教一下leetcode #321. Create Maximum Number
求 Maximum Subarray divide and conquer 解法Leetcode 689居然是fb的高频题?
求最大subarray的和和积的问题请大家帮忙分析一下这个程序的时间复杂性
新题gas station,做出来了却没想通请问软软的面试是什么样的?
问一个给定的array 和一个sum value,找最小sub-array,谢谢问一个reverse int的问题
programming pears上的maximum subarray算法是不是有小bug?问一道amazon的Onsite题
关于Leetcode Maximum Subarray 的变种问题请教一个算法题:矩阵找子矩阵,使得sum最大
报个L家店面面经,求onsite bless火帖里边的一道M的题Subarray sum
相关话题的讨论汇总
话题: currmax话题: max话题: min话题: int话题: res