由买买提看人间百态

topics

全部话题 - 话题: currsum
(共0页)
g****s
发帖数: 1755
1
来自主题: JobMarket版 - 请教面试JAVA考题最佳算法
抱歉,是我理解错了;
如果整个数列可以随意arrange的话,需要O(n^2);
即需要要计算任意组合的sum值。需要用到Combination的算法。
import java.util.HashSet;
import java.util.Scanner;
public class PartitionProblem {
public static void main(String[] args){
//int[] array = creatArray();
int[] array = {1,2,2,3,5,7};
boolean PN = partitionPro(array);
if(PN) System.out.println("yes!");
else System.out.println("Nope.");
}//end main()
private static boolean partitionPro(int[] array) {
// TODO Auto-generated method stub
int totalSum = 0;
HashSet su... 阅读全帖
j*****8
发帖数: 3635
2
继续加
if currSum < 0 then currSum = 0
else if currSum >= target && currSum > curMax then currMax = currSum
没仔细想,可能不对
h***n
发帖数: 276
3
use another array to store currsum's indices to represent sorted currsum
in your case, currsum[2] would have a lower index than currsum[0]
h***n
发帖数: 276
4
1) sort currsum array O(nlogn)
2) for each currsum[i], binary search the nearest number to currsum[i]+t (lo
gn) for each
to sum up O(nlogn)
b*****n
发帖数: 143
5
Thank you for your reply. But there is one problem in this solution:
Suppose when you search currsum[2]+t, the closest element is currsum[0],
then that means the sum of sub-array from 0 to 2 is -t, not t, right?
d**********6
发帖数: 4434
6
来自主题: JobHunting版 - 好挫的F家面经
有点麻烦了
hash的时候直接这样
currSum = sum(nums[:i+1])
Hash(y-currSum) = i
如果遇到重复hashkey, i取较大的
这样就把2sum的hash步骤提上来,一部到位

1]
j*****8
发帖数: 3635
7
这个有啥tricky的地方吗,难道不是加个condition check currSum >= target 就行?
(共0页)