0
点赞
收藏
分享

微信扫一扫

所有奇数长度子数组的和

诗与泡面 2021-09-21 阅读 24
今日算法
题目描述:
示例 1:
示例 2:
示例 3:
题目分析:
  1. 求数组的连续数组
  2. 求数组的长度为奇数的连续子数组之和
思考:
class Solution {
    int total = 0;
    int mark = 0;
    int len;
    int[] nums;
    public int sumOddLengthSubarrays(int[] arr) {
        nums = arr;
        len = arr.length;
        for (int i = 0; i < len; i++) {
            dfs(len, i, new ArrayList<Integer>());
        }
        
        return total;
    }
    public void dfs(int len, int idx, ArrayList<Integer> list) {
        if (idx == len) {
            return;
        }
            mark++;
            list.add(nums[idx]);
            if (mark % 2 == 1) { // 判断当前子数组是否是奇数。
                int sum = list.stream().reduce(Integer::sum).get();
                total += sum;
            }
            dfs(len, idx + 1, list);
            list.remove(Integer.valueOf(nums[idx]));
            mark--;
    }
}
举报

相关推荐

0 条评论