LeetCode 891. 子序列宽度之和(数学)
文章目录
- 1. 题目
- 2. 解题
1. 题目
给定一个整数数组 A ,考虑 A 的所有非空子序列。
对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差。
返回 A 的所有子序列的宽度之和。
由于答案可能非常大,请返回答案模 10^9+7。
示例:
输入:[2,1,3]
输出:6
解释:
子序列为 [1],[2],[3],[2,1],[2,3],[1,3],[2,1,3] 。
相应的宽度是 0,0,0,1,1,2,2 。
这些宽度之和是 6 。提示:
1 <= A.length <= 20000
1 <= A[i] <= 20000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-subsequence-widths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
类似题目:
LeetCode 907. 子数组的最小值之和(单调栈)
天池 在线编程 所有子数组之和(排列组合)
class Solution {public:int sumSubseqWidths(vector<int> &A) {long long ans = 0, mod = 1e9+7;long long n = A.size();sort(A.begin(), A.end());// 每个数作为最小值的时候,右侧有多少种方案 2^(n-i-1);// 每个数作为最大值的时候,左侧有多少种方案 2^(i);vector<long long> p2(n);p2[0] = 1;for(int i = 1; i < n; i++)p2[i] = (p2[i-1]<<1)%mod;for(int i = 0; i < n; ++i){ans = (ans + (p2[i]-p2[n-i-1])*A[i])%mod;}return (ans+mod)%mod;}
};
68 ms 26.6 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 891. 子序列宽度之和(数学)相关推荐
- 力扣每日一题:891. 子序列宽度之和(java)
891. 子序列宽度之和https://leetcode.cn/problems/sum-of-subsequence-widths/ 目录 题目描述: 解法思路: 优化思路: 题目描述: 一个序列的 ...
- [leetcode]1.两数之和
[leetcode]1.两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应 ...
- [双指针|模拟] leetcode 15 三数之和
[双指针|模拟] leetcode 15 三数之和 1.题目 题目链接 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? ...
- [hashmap|空间换时间] leetcode 1 两数之和
[hashmap|空间换时间] leetcode 1 两数之和 1.题目 题目链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下 ...
- [二叉树|深搜|dfs] leetcode 404 左叶子之和
[二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...
- C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组
C/C++描述 LeetCode 167. 两数之和 II - 输入有序数组 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在 ...
- html div父集子集,怎么让父极元素的宽度自动设为所有子集的宽度之和呢?或者怎么保证子集不换行?不考虑用js!...
慕仙森 要让父元素的宽度是所有子元素的宽度之和,那就是说跟据内容自适应,设置父元素的display: inline-block;;要让子元素不换行,在父元素上设置white-space: nowrap ...
- LeetCode 1. 两数之和
LeetCode 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入 ...
- Leetcode 15:三数之和(最详细解决方案!!!)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 *a,b,c ,*使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. **注意:**答案中不可以包含重 ...
最新文章
- 从一次react异步setState引发的思考
- SVM(支持向量机)之Hinge Loss解释
- 少儿编程语言python-Python少儿编程系列-前言-为什么学Python?
- 5、ResultSet结果集
- Java虚拟机和Dalvik(android)虚拟机的区别
- linux中运行ifconfig出现错误,不能sudo apt install net-tools,Linux不能联网
- scala读取mysql文件_9. Scala操作外部数据 文件读取,xml,Excel,MySQL
- golang java耗内存_golang websocket内存泄漏
- Cacti监控Varnish
- 如何优化及安全设置Linux系统
- TCL学习心得(2)Tcl语言的语法
- Java数组集合转换
- Linux学习笔记(五) -- Linux+Anjuta搭建C++开发环境
- 使用consul注册中心要求服务以自定义instance-id形式注册
- 【Course 2 改善深度神经网络】Week 1 深度学习的实用层面
- 最短曼哈顿距离(递推+枚举 C++)
- 微信小程序根据sourceMap 定位代码错误位置
- php 表格模板,怎么制作excel表格模板
- Android检查GPU呈现模式和过度绘制
- CVPR2019 Learning to Reduce Dual-level Discrepancy for Infrared-Visible Person Re-identification