美文网首页
1588. 所有奇数长度子数组的和

1588. 所有奇数长度子数组的和

作者: 漫行者_ | 来源:发表于2021-08-29 17:00 被阅读0次

1588. 所有奇数长度子数组的和

这题目一开始读错,子序列理解成子数组
贴个代码吧。dfs。

class Solution {
    public int sumOddLengthSubarrays(int[] arr) {
        List<Integer> result = new ArrayList<>();
        dfs(result, arr, 0, 0, 0);
        int sum = 0;
        for(int i=0; i<result.size(); i++) {
            sum += result.get(i);
        }
        return sum;
    }

    public void dfs(List<Integer> result, int[] arr, int count, int depth, int sum) {
        if(count%2 == 1) {
            result.add(sum);
        }
        if(depth == arr.length) {
            return;
        }
        dfs(result, arr, count,depth+1, sum);
        dfs(result, arr, count+1,depth+1, sum+arr[depth]);       
    }
}

如果子序列的话:
贴一个别人写的解释:
https://leetcode-cn.com/problems/sum-of-all-odd-length-subarrays/solution/cong-on3-dao-on-de-jie-fa-by-liuyubobobo/
根据最后的来写的代码:

class Solution {
    public int sumOddLengthSubarrays(int[] arr) {
        int sum = 0;
        for(int i=0; i<arr.length; i++) {
            int left = i; 
            int right = arr.length - i - 1;
            int left_odd = (left+1)/2;//左边奇数的个数
            int right_odd = (right+1)/2;
            int left_idd = left/2 + 1;//左边偶数的个数,要注意加一个
            int right_idd = right/2 + 1;
            sum += (left_odd*right_odd + left_idd*right_idd)*arr[i];
        }
        return sum;
    }
}

相关文章

  • 1588. 所有奇数长度子数组的和

    1588. 所有奇数长度子数组的和[https://leetcode-cn.com/problems/sum-of...

  • LeetCode-1588-所有奇数长度子数组的和

  • 统计「优美子数组」

    题目: 题目的理解: 从数组中连续的获取一个子数组,此子数组包含k个奇数,则是「优美子数组」。 获取所有的奇数位置...

  • 奇数偶数排序

    题目解释: 长度为 n 的整数数组,对数组进行整理,使得所有的奇数都在数组的前面,而所有的偶数都在数组的后面。例如...

  • leetcode-1

    给定一个数值s,一个定长数组num,返回该数组所有和大于7的长度最小连续子数组的长度。 例:int s = 7 ;...

  • 连续子数组的最大和

    描述 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子...

  • 栈-N907-子数组的最小值之和

    题目 概述:给定一个数组,求该数组的所有连续子数组最小元素的和 输入:整数数组,长度范围[1, 30000] 输入...

  • Array-905. Sort Array By Parity

    题目:非负数组A包含偶数和奇数,将所有奇数排列在所有偶数后边 例子:Input: [3,1,2,4]Output:...

  • 最长回文子串

    首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的...

  • Python编程题39--所有奇数长度子列表的和

    题目 给定一个非空的正整数列表 arr ,请计算所有可能的奇数长度子列表的和(子列表指原列表中的一个连续子序列)。...

网友评论

      本文标题:1588. 所有奇数长度子数组的和

      本文链接:https://www.haomeiwen.com/subject/ejfgiltx.html