地址:1664. 生成平衡数组的方案数

    结果:AC

    代码:

    1. class Solution {
    2. public:
    3. int waysToMakeFair(vector<int>& nums) {
    4. int l_odd = 0;
    5. int r_odd = 0;
    6. int l_even = 0;
    7. int r_even = 0;
    8. for (int i = 0; i < nums.size(); i++) {
    9. if(i%2 == 0) r_even += nums[i];
    10. else r_odd += nums[i];
    11. }
    12. int ans = 0;
    13. for (int i = 0; i < nums.size(); i++) {
    14. if(i%2 == 0) {
    15. r_even -= nums[i];
    16. if(l_even + r_odd == l_odd + r_even) ans++;
    17. l_even += nums[i];
    18. } else {
    19. r_odd -= nums[i];
    20. if(l_even + r_odd == l_odd + r_even) ans++;
    21. l_odd += nums[i];
    22. }
    23. }
    24. return ans;
    25. }
    26. };