编程题---在数组中取一个位置,让这个位置之前的数的和与之后的和的差绝对值最小

// 思路:左右两个指针,左右两个和,当左边和大的时候右边指针左移一位,和增加一个数

int findIndex (vector<int> nums){
    if (nums == NULL)  return -1;
    if (nums.size() == 1)  return 0;
    int left = nums[0], l = 0, right = nums[nums.size() - 1], r = nums.size() - 1;
    while (l < r){
        if (left > right){
            right += nums[ r-- ];
        }
        else{
            left += nums[l ++];
        }
    }
    return l;
}

 

posted @ 2017-10-30 22:41  爱简单的Paul  阅读(325)  评论(2编辑  收藏  举报