-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathbfMaximumSubarray.ps1
More file actions
20 lines (18 loc) · 864 Bytes
/
bfMaximumSubarray.ps1
File metadata and controls
20 lines (18 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function bfMaximumSubarray($inputArray) {
$maxSubarrayStartIndex = 0
$maxSubarrayLength = 0
$maxSubarraySum = $null
for ($startIndex = 0; $startIndex -lt $inputArray.Count; $startIndex += 1) {
$subarraySum = 0
for ($arrLength = 1; $arrLength -lt ($inputArray.Count - $startIndex); $arrLength += 1) {
$subarraySum += $inputArray[$startIndex + ($arrLength - 1)]
if ($maxSubarraySum -eq $null -or $subarraySum -gt $maxSubarraySum) {
$maxSubarraySum = $subarraySum
$maxSubarrayStartIndex = $startIndex
$maxSubarrayLength = $arrLength
}
}
}
# return inputArray.slice(maxSubarrayStartIndex, maxSubarrayStartIndex + maxSubarrayLength);
$inputArray[$maxSubarrayStartIndex..($maxSubarrayStartIndex + $maxSubarrayLength - 1)].clone()
}