Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Int32 CentreOfGravity(int[] arr) {
- // get "total mass" of input:
- Int32 total = 0;
- for(int i = 0; i < arr.Length; i++ ) total += arr[i]; // or just arr.Sum( e => e ); if using Linq
- // Work from left-to-right such that Min( Mass(left) - Mass(right) ) is found:
- Int32 left = 0;
- Int32 minDelta = Int32.MaxValue;
- Int32 minDeltaIdx = -1;
- for(int i = 0; i < arr.Length; i++ ) {
- left += arr[i];
- Int32 delta = left - (total - left);
- if( delta < minDelta ) {
- minDelta = delta;
- minDeltaIdx = i;
- }
- }
- return minDeltaIdx;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement