所有奇数长度子数组的和

方法一:暴力

解题思路:
1.遍历数组
2.遍历该数组每一项元素能组成奇数组的所有可能
3.遍历每个奇数组,取和

  1. /**
  2. * @param {number[]} arr
  3. * @return {number}
  4. */
  5. var sumOddLengthSubarrays = function(arr) {
  6. let sum = 0;
  7. // 1.遍历数组,每一项有几种可能按条件组成奇数组
  8. for(let start = 0; start < arr.length; start++){
  9. // 2.遍历奇数长度的所有子数组,数组长度从1开始,+2奇数增加;数组长度越长,子数组越多,遍历次数越多
  10. // leng:子数组长度 leng每次+2之后 开始下标+leng 不能大于原数组长度,大于的话就是不存在的子数组,不符合题意。
  11. for(let leng = 1; start + leng <= arr.length; leng += 2){
  12. // 3.算出子数组结束元素的下标
  13. let end = start + leng - 1;
  14. //3.遍历每个奇数长度子数组,取和
  15. for(let i = start; i <= end; i++){
  16. sum += arr[i]
  17. }
  18. }
  19. }
  20. return sum;
  21. };