[LinkedIn]find balance (equilibrium) point (index) in an array (unsorted)

来源:互联网 发布:美图秀秀mac官方 编辑:程序博客网 时间:2024/06/10 18:51

Code From Here (g4g)

/**1) Initialize leftsum  as 02) Get the total sum of the array as sum3) Iterate through the array and for each index i, do following.    a)  Update sum to get the right sum.             sum = sum - arr[i]  sum is now right sum    b) If leftsum is equal to sum, then return current index.     c) leftsum = leftsum + arr[i] 4) return -1 **/int equilibrium(int arr[], int n){   int sum = 0;      // initialize sum of whole array   int leftsum = 0; // initialize leftsum   int i;   /* Find sum of the whole array */   for (i = 0; i < n; ++i)        sum += arr[i];   for( i = 0; i < n; ++i)   {      sum -= arr[i]; // sum is now right sum for index i      if(leftsum == sum)        return i;      leftsum += arr[i];   }    /* If no equilibrium index found, then return 0 */    return -1;}
0 0
原创粉丝点击