-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathSubArray.java
70 lines (64 loc) · 1.67 KB
/
SubArray.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class SubArray
{
private int prefixSum,suffixSum,sum,maximumSum;
public SubArray(int value)
{
setPrefixSum(value);
setSuffixSum(value);
setSum(value);
setMaximumSum(value);
}
public SubArray(SubArray left,SubArray right)
{
setPrefixSum(left,right);
setSuffixSum(left,right);
setSum(left,right);
setMaximumSum(left,right);
}
private void setMaximumSum(SubArray left, SubArray right)
{
int newSum=left.getSuffixSum()+right.getPrefixSum();
setMaximumSum(Math.max(newSum, Math.max(getPrefixSum(), getSuffixSum())));
}
private void setSum(SubArray left, SubArray right) {
// TODO Auto-generated method stub
setSum(left.getSum()+right.getSum());
}
private void setSuffixSum(SubArray left, SubArray right) {
// TODO Auto-generated method stub
setSuffixSum(Math.max(left.getSuffixSum()+right.getSum(),right.getSuffixSum()));
}
private void setPrefixSum(SubArray left, SubArray right) {
// TODO Auto-generated method stub
setPrefixSum(Math.max(left.getPrefixSum(), left.getSum()+right.getPrefixSum()));
}
public int getPrefixSum() {
return prefixSum;
}
private void setPrefixSum(int prefixSum) {
this.prefixSum = prefixSum;
}
public int getSuffixSum() {
return suffixSum;
}
private void setSuffixSum(int suffixSum) {
this.suffixSum = suffixSum;
}
public int getSum() {
return sum;
}
private void setSum(int sum) {
this.sum = sum;
}
public int getMaximumSum() {
return maximumSum;
}
private void setMaximumSum(int maximumSum) {
this.maximumSum = maximumSum;
}
public String toString()
{
return "[PrefixSum: "+getPrefixSum()+", SuffixSum: "+getSuffixSum()+
", MaximumSum: "+getMaximumSum()+", Sum: "+getSum()+"]";
}
}