Jump to content

Equilibrium index: Difference between revisions

Add Rust implementation
(Add Rust implementation)
Line 2,438:
[2, 9, 2] => [1]
[1, -1, 1, -1, 1, -1, 1] => [0, 1, 2, 3, 4, 5, 6]
</pre>
 
=={{header|Rust}}==
<lang rust>
extern crate num;
 
use num::traits::Zero;
 
fn equilibrium_indices(v: &[i32]) -> Vec<usize> {
let mut right = v.iter().sum();
let mut left = i32::zero();
 
v.iter().enumerate().fold(vec![], |mut out, (i, &el)| {
right -= el;
if left == right {
out.push(i);
}
left += el;
 
out
})
}
 
fn main() {
let v = [-7i32, 1, 5, 2, -4, 3, 0];
let indices = equilibrium_indices(&v);
println!("Equilibrium indices for {:?} are: {:?}", v, indices);
}
</lang>
{{out}}
<pre>
Equilibrium indices for [-7, 1, 5, 2, -4, 3, 0] are: [3, 6]
</pre>
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.