文章目录

  • 1. 题目
  • 2. 解题
    • 2.1 暴力解
    • 2.1 O(n) 解

1. 题目

给定一个数组nums, 你需要返回这个数组所有子数组之和。

如果nums = [2, 4, 1], 数组所有的子集是 {[2], [4], [1], [2, 4], [4, 1], [2, 4, 1]}
保证返回的结果是int的类型
len(nums) <= 50

示例
示例1:
输入: nums = [1, 2, 3]
输出: 20
解释: {1} + {2} + {3} + {2 + 3} + {1 + 2} + {1 + 2 + 3} = 20示例2
输入: [1, 2]
输出: 6
解释: {1} + {2} + {1, 2} = 6

https://tianchi.aliyun.com/oj/231203672248052266/245580596369363586

2. 解题

2.1 暴力解

class Solution {public:/*** @param nums: a Integer list* @return: return the sum of subarrays*/int SubArraySum(vector<int> &nums) {// write your code hereint ans = 0, n = nums.size();vector<int> dp(n, 0);dp[0] = nums[0]; // 前n个数的所有子数组的和for(int i = 1; i < nums.size(); ++i){int k = i+1;dp[i] = dp[i-1];while(k){dp[i] += nums[k-1]*k;k--; }}return dp[n-1];}
};

2.1 O(n) 解

类似题目:
LeetCode 907. 子数组的最小值之和(单调栈)
LeetCode 891. 子序列宽度之和(数学)

每个数左右的数有多少个,包含自己,相乘就是方案数

class Solution {public:/*** @param nums: a Integer list* @return: return the sum of subarrays*/int SubArraySum(vector<int> &nums) {// write your code hereint ans = 0, n = nums.size();for(int i = 0; i < nums.size(); ++i){ans += nums[i]*(i+1)*(n-i);}return ans;}
};

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

天池 在线编程 所有子数组之和(排列组合)相关推荐

  1. 1814. 所有子数组之和

    1814. 所有子数组之和   给定一个数组nums, 你需要返回这个数组所有子数组之和. 样例 示例1: 输入: nums = [1, 2, 3] 输出: 20 解释: {1} + {2} + {3 ...

  2. 【组队学习】【34期】阿里云天池在线编程训练营

    阿里云天池在线编程训练营 航路开辟者:陈信达.杨世超.赵子一.马燕鹏 领航员:武帅.初晓宇.叶前坤.邱广坤.朱松青 航海士:宁彦吉.肖桐.汪超.陈信达.杨世超.赵子一.武帅.初晓宇.叶前坤.邱广坤.朱 ...

  3. 牛客网在线编程——二维数组中的查找

    今天是第二次用牛客的在线编程,上次还是去年的七月一号,已然过去近一年的时间,遇到了不少坑,首先题目看错了,没看到数据是有序的,其次就是对二维数组的输入有些不解,是用户手动输入还是现成的,没有说清楚,最 ...

  4. 天池在线编程 2020年9月26日 日常周赛题解

    文章目录 1. K步编辑 2. 折纸 3. 字符串的不同排列 4. 硬币排成线 题目地址,请点这 1. K步编辑 给出一个只含有小写字母的字符串的集合以及一个目标串(target),输出所有可以经过不 ...

  5. LeetCode:数组(排列组合,二分查找I,二分查找II)

    1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...

  6. JavaScript二维数组元素排列组合

    lizuncong (lizuncong) · GitHubI am a strong believer in reverse engineering. lizuncong has 42 reposi ...

  7. 打印数组的排列组合/STL next_permutation函数

    在STL中,除了next_permutation外,还有一个函数prev_permutation,两者都是用来计算排列组合的函数. https://blog.csdn.net/qq_42391248/ ...

  8. java 数组的排列组合_java数组排列组合问题汇总

    面试或笔试中,多次遇到以下4个关于排列组合的手撕算法,这里做个笔记,方法日后查阅: 1. 无重复元素的数组,求全排列: 2. 有重复元素的数组,求全排列: 3. 无重复元素的数组,求组合[子集]: 4 ...

  9. python借书还书_python趣味编程:借书方案(排列组合)

    题目:借书方案 内容:小明有五本新书,要借给A.B.C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法. 问题分析和算法设计: 本问题实际上就是一个排列问题,即求从5个中取3个进行排列的方法 ...

最新文章

  1. 登录环境故障的原理及解决办法? -bash-4.1$ -bash-4.1$
  2. 当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?
  3. 根据输入的出生日期计算到今天之间的天数
  4. 非中国服务器的时区问题
  5. linux 压缩权限,linux的基本操作(归档压缩,用户、权限管理,远程服务器构建和vi编辑器)...
  6. LeetCode—数据库简单题(三)
  7. ROI和widthStep
  8. 沙盘模拟软件_重大消息:企业经营沙盘招新啦
  9. C语言的酒店客房管理系统
  10. php抽奖简单源码,php转盘抽奖 完整例子源码(含模拟数据)
  11. HDDREG(硬盘坏道修复工具)v1.31绿色版
  12. oracle minus连接条件,oracle及sqlserve中MINUS 的使用方法
  13. 敏捷成熟度评估模型-AMM评估管理实践与技术实践
  14. java怎么运行安卓程序_在安卓手机上怎么运行java的应用程序
  15. 投屏电视显示无法连接服务器,无法连接服务器.怎么办?
  16. 本地滑块识别DLL/本地通用验证码识别DLL/文字点选/图标点选/本地识别DLL
  17. 线性代数系列(四)--解方程组
  18. 安装ubuntu服务器版本
  19. 中关村修电脑,被坑了
  20. 做网站选择虚拟主机好是服务器,做网站选择虚拟主机还是服务器

热门文章

  1. 逻辑综合工具DesignCompiler使用教程
  2. 解决Django 忘记超级管理员密码 重设密码登录教程
  3. python编程中的if __name__ == 'main': 的作用和原理[2]
  4. Zookeeper集群角色分配原理
  5. 关于用VS写C程序运行时出现烫字以及乱码的问题的原因
  6. 关于eclipse项目红色感叹号的解决办法
  7. 计算机表格怎么求面积,在wps表格中怎么把数据生成面积图?
  8. php表示私有变量的是,PHP 访问私有和受保护的成员变量
  9. [NOI2019]回家路线
  10. spring restTemplate使用方法