Change hw6 to an unsolved version.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
parent
0c04936ccf
commit
ee01a8f5b2
186 changed files with 9605 additions and 4019 deletions
41
hw6/hw4programs/sp22_tests/largest_cont_sum.oat
Normal file
41
hw6/hw4programs/sp22_tests/largest_cont_sum.oat
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
int largest_continuous_sum(int[] arr, int lo, int hi) {
|
||||
if (lo == hi) {
|
||||
return arr[lo];
|
||||
}
|
||||
var mid = (lo + hi) >> 1;
|
||||
var left_sum = largest_continuous_sum(arr, lo, mid);
|
||||
var right_sum = largest_continuous_sum(arr, mid + 1, hi);
|
||||
|
||||
var sum = arr[mid + 1];
|
||||
var middle_right_sum = arr[mid + 1];
|
||||
for (var i = mid + 2; i <= hi; i = i + 1; ) {
|
||||
sum = sum + arr[i];
|
||||
if (sum > middle_right_sum) {
|
||||
middle_right_sum = sum;
|
||||
}
|
||||
}
|
||||
|
||||
sum = arr[mid];
|
||||
var middle_left_sum = arr[mid];
|
||||
for (var i = mid - 1; i >= lo; i = i - 1; ) {
|
||||
sum = sum + arr[i];
|
||||
if (sum > middle_left_sum) {
|
||||
middle_left_sum = sum;
|
||||
}
|
||||
}
|
||||
|
||||
var middle_sum = middle_left_sum + middle_right_sum;
|
||||
|
||||
if (middle_sum > left_sum & middle_sum > right_sum) {
|
||||
return middle_sum;
|
||||
} else if (left_sum > middle_sum & left_sum > right_sum) {
|
||||
return left_sum;
|
||||
}
|
||||
|
||||
return right_sum;
|
||||
}
|
||||
|
||||
int program(int argc, string[] argv) {
|
||||
var arr = new int[]{2, -3, 100, 5, 20, -50};
|
||||
return largest_continuous_sum(arr, 0, 5);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue