891. 子序列宽度之和(每日一难phase3-4)
创始人
2024-01-29 18:09:38

891. 子序列宽度之和

一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。

给你一个整数数组 nums ,返回 nums 的所有非空 子序列 的 宽度之和 。由于答案可能非常大,请返回对 109 + 7 取余 后的结果。

子序列 定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。例如,[3,6,2,7] 就是数组 [0,3,1,6,2,2,7] 的一个子序列。

示例 1:

输入:nums = [2,1,3]
输出:6
解释:子序列为 [1], [2], [3], [2,1], [2,3], [1,3], [2,1,3] 。
相应的宽度是 0, 0, 0, 1, 1, 2, 2 。 宽度之和是 6 。

示例 2:

输入:nums = [2]
输出:0

提示:

1 <= nums.length <= 1e5
1 <= nums[i] <= 1e5

解析:

  • 方法1,我们可以根据长度暴力枚举每个子序列,然后找出每个子序列的最大值最小值,这种思考方法属于,子序列为主,在考虑最大最小值。
  • 显然,方法1不适合。我们可以转换思考角度,可以先针对每个元素考虑,枚举每个元素作为最大值最小值的情况,然后再考虑这个元素作为最大值或者最小值能出现在多少个子序列中。
  • 然后,计算每个元素的贡献值。如果 a 元素作为最大值出现在10个子序列中,那么贡献值为 10a,如果作为最小值出现在20个子序列中那么贡献值为 -20a 。就这样计算出所有元素的贡献值之和。
  • 怎样计算每个元素作为最大最小出现再多少个子序列中呢?
  • 例如:1 2 4 3,
  • 1作为最小值会出现在2 4 3这三个元素任意组成的子序列中(不考虑顺序问题);
  • 2作为最小值会出现4,3组成的子序列中;
  • 1作为最大值会出现在 1 组成的子序列中;
  • 2作为最大值会出现在1 2组成的子序列中;
  • 3作为最大值会出现在1 2 3组成的子序列中;
  • 可以发现,每个元素作为最大值的子序列个数,是由比他小的元素组成;每个元素作为最小值的子序列个数,是由比他大的元素组成;因此,只需要统计每个元素的较小,较大元素个数(排序),然后再根据元素个数计算元素组合个数即可。
  • 怎么计算元素组合个数 ? f[i]表示i个元素的组合数

-

总结:子序列问题+不依赖相对位置(不考虑顺序)==》 不需要保留原有位置 ==》可以排序。

代码:

class Solution {int mod=1e9+7;
public:int sumSubseqWidths(vector& nums) {int n=nums.size();long f[n+1];f[0]=0;for(int i=1;if[i]=2*f[i-1]+1;f[i]%=mod;}sort(nums.begin(),nums.end());long res=0;// 每个元素作为最大最小的元素个数for(int i=0;ires += (f[i]-f[n-i-1])*nums[i];res%=mod;}return (int)res;}
};

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
函授本科是什么 自考本科还是函... 很多小伙伴在选择学历提升方式的时候,可能会感到很迷茫,不知道报考自考本科还是函授本科,两者有什么区别...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
安徒生童话有哪些 安徒生童话的... 从德国汉堡港乘轮船渡波罗的海抵丹麦王国,就到了安徒生的祖邦。安徒生(1805-1875)以童话作品闻...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...