一、问题描述

二、解题思路
由于本题意思很明确,所以只需要模拟即可,实质上是前缀和。值得注意的是,为了保证下标的统一,leftSum和rightSum的size应该为nums.size()+1。而且,填写2个向量的起始位置和结束位置也要注意,最好能针对一个示例画图处理。
三、代码实现
cpp
class Solution {
public:
vector<int> leftRightDifference(vector<int>& nums) {
vector<int> leftSum(nums.size()+1,0);
vector<int> rightSum(nums.size()+1,0);
//填写两个前缀和数组
for(int i=0;i!=nums.size();i++)
leftSum[i+1]=leftSum[i]+nums[i];
for(int i=nums.size()-2;i>=0;i--)
rightSum[i]=rightSum[i+1]+nums[i+1];
//填写answer数组
vector<int> answer(nums.size(),0);
for(int i=0;i!=nums.size();i++)
answer[i]=abs(leftSum[i]-rightSum[i]);
return answer;
}
};