massimo subarray #52
Unanswered
CuriousCI
asked this question in
Esercizi 1
Replies: 2 comments 2 replies
-
Dovrebbe funzionare, fatemi sapere se c'è qualcosa di strano fn max_subarray(vec: &[isize]) -> isize {
if vec.len() == 1 {
return vec[0].max(0);
}
fn max<'a>(x: impl Iterator<Item = &'a isize>) -> isize {
x.scan(0, |acc, &x| {
*acc += x;
Some(*acc)
})
.max()
.unwrap()
}
let middle = vec.len() / 2;
let prefix = max(vec[..middle].iter().rev());
let suffix = max(vec[middle..].iter());
(prefix + suffix)
.max(max_subarray(&vec[..middle]))
.max(max_subarray(&vec[middle..]))
} |
Beta Was this translation helpful? Give feedback.
1 reply
-
def massimo_subarray(a : array){
n = len(a)
m = n/2
if n == 0{
return 0
}
if n == 1{
return a[0]
L = massimo_subarray(a[0:m])
R = massimo_subarray(a[m+1,n-1])
S = 0
for i da m a 0{
somma = S + a[i]
S = max(S,somma)
}
fot j da m+1 a n-1{
somma = S + a[j]
S = max(S,somma)
}
return max(R,L,S)
} |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Dato in input un array$A$ di interi (quindi anche valori negativi) scrivere lo pseudocodice di un algoritmo che trova un subarray $A[i, j], i \leq j$ (una porzione dell'array che va da $i$ a $j$ ) di somma massima, e ne ritorna la somma in $O(n log(n))$
Beta Was this translation helpful? Give feedback.
All reactions