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] 。
相应的宽度是 0001122 。
这些宽度之和是 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阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive建表语句_Hive数据如何同步到MaxCompute之实践讲解

摘要&#xff1a;本次分享主要介绍 Hive数据如何迁移到MaxCompute。MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具&#xff0c;本文将为大家介绍MMA工具的功能、技术架构和实现原理&#xff0c;再通过实际操作MMA&#xff0c;演示将Hive数据迁移到MaxCompute。…

Java 包及访问权限

文章目录1. package 包2. import3. JDK常见的包4. 访问权限5. jar 压缩1. package 包 作用&#xff1a;防止不同的人写的类的名称相同冲突了&#xff0c; package testPackage1.java; class testPg {public String talk(){return "talk()";} } class testAnother{p…

java phaser用法_第3章Phaser的使用-(java并发编程核心方法与框架)

3.1 Phaser的使用3.2 类Phaser的arriveAndAwaitAdvance()方法测试13.3 类Phaser的arriveAndAwaitAdvance()方法测试23.4 类Phaser的arriveAndDeregister()方法测试3.5 类Phaser的getPhase()和onAdvance()方法测试3.6 类Phaser的getRegisteredParties()方法和register()测试3.7 …

html选项卡_适用于Mac的最佳HTML文本编辑器,编码开发必备

一个好的文本编辑器对于想要建立网站或进行编码的任何人都是必不可少的。这对于习惯于面面俱到的环境的Mac开发人员而言更加明显。对于他们来说存在一系列不同的优质软件之选。今天小编将介绍几款Mac上好用的HTML文本编辑器&#xff0c;对于每一款文本编辑器&#xff0c;小编将…

Hive静态分区表动态分区表

静态分区表&#xff1a; 一级分区表&#xff1a; CREATE TABLE order_created_partition (orderNumber STRING, event_time STRING ) PARTITIONED BY (event_month string) ROW FORMAT DELIMITED FIELDS TERMINATED BY \t; 加载数据方式一&#xff1a;从本地/HDFS目录加载 loa…

java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...

Java过滤器处理Ajax请求&#xff0c;Java拦截器处理Ajax请求&#xff0c;拦截器Ajax请求java 判断请求是不是ajax请求&#xff0c;Java判断是否为ajax请求>>>>>>>>>>>>>>>>>>>>>>>>>>>>&…

python考试名词解释_python公开课|python专有名词居然有这么多,python专有名词解释已做好...

【摘要】在这个科学技术高速发展的时代&#xff0c;越来越多的人都开始选择学习编程软件&#xff0c;那么首先被大家选择的编程软件就是python&#xff0c;也用在各行各业之中&#xff0c;并被大家所熟知&#xff0c;所以也有越来越多的python学习者关注python专有名词解释问题…

java set hashcode_Java学习笔记_180724_HashSet_hashCode()

HashSet泛型E必须重写hashCode方法&#xff0c;否则会导致add结果与预期不符如class NewClass{String s;public NewClass(String s){this.ss;}overridepublic int hashCode(){//此处返回字符串s的hashCode()return s.hashCode();}}NewClass n new NewClass("1");New…

LeetCode 1773. 统计匹配检索规则的物品数量

文章目录1. 题目2. 解题1. 题目 给你一个数组 items &#xff0c;其中 items[i] [typei, colori, namei] &#xff0c;描述第 i 件物品的类型、颜色以及名称。 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。 如果第 i 件物品能满足下述条件之一&#xff0…

ThinkPHP(3.2)搭建简单留言板项目

1.基本业务功能 》查看所有留言功能&#xff0c;index/index需要一个页面&#xff0c;用来展示当前应用程序中所有留言信息&#xff08;默认页面&#xff09;。 展示形式&#xff1a;表格或者无序列表&#xff0c;这里用表格&#xff0c;方便些 》查看单条留言&#xff0c;inde…

LeetCode 1774. 最接近目标价格的甜点成本(DFS / 01背包)

文章目录1. 题目2. 解题1. 题目 你打算做甜点&#xff0c;现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则&#xff1a; 必须选择 一种 冰激凌基料。可以添加 一种或多种 配料&#xff0c;也可以不添加任何配料。每种类型的配…

java中存在对多个对象加锁的情况_Java对象锁和类锁全面解析(多线程synchronized关键字)...

最近工作有用到一些多线程的东西&#xff0c;之前吧&#xff0c;有用到synchronized同步块&#xff0c;不过是别人怎么用就跟着用&#xff0c;并没有搞清楚锁的概念。最近也是遇到一些问题&#xff0c;不搞清楚锁的概念&#xff0c;很容易碰壁&#xff0c;甚至有些时候自己连用…

线程间通信的几种方法_并发编程中的线程间通信

线程通信的目标是使线程间能够互相发送信号。另一方面&#xff0c;线程通信使线程能够等待其他线程的信号。线程通信常用的方式有:wait/notify 等待Volatile 内存共享CountDownLatch 并发工具使用 ReentrantLock 结合 Condition基本LockSupport实现线程间的阻塞和唤醒方式一&am…

【IOS】Target membership

Target membership是指XCode中&#xff0c;一个文件属于哪一个工程&#xff0c;在XCode左侧的工程面板中选中一个文件&#xff0c;在XCode右侧的属性面板中会显示其Target Membership&#xff0c;如下图。 当前的文件AppDelegate.m属于书谱这个Target。 Target Membership的一些…

LeetCode 1775. 通过最少操作次数使数组的和相等(贪心+双指针)

文章目录1. 题目2. 解题1. 题目 给你两个长度可能不等的整数数组 nums1 和 nums2 。 两个数组中的所有值都在 1 到 6 之间&#xff08;包含 1 和 6&#xff09;。 每次操作中&#xff0c;你可以选择 任意 数组中的任意一个整数&#xff0c;将它变成 1 到 6 之间 任意 的值&am…

pythonrequest得替代_python的扩展包requests的高级用法

Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能&#xff0c;但是它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作&#xff0c;甚至包括各种方法覆盖&#xff0c;来完成最简单的任务。Requests 完全满足如今网络的需求。国际化域…

画箭头

$Xexittrim($exit[0]); //始点x坐标$Yexittrim($exit[1]); //始点Y坐标$Xentertrim($enter[0]); //终点X坐标$Yentertrim($enter[1]); //终点Y坐标imageline($im,$Xexit,$Yexit,$Xenter,$Yenter,$green); //画根线if($Yexit $Yenter) {if($Xexit < $Xente…

LeetCode 1776. 车队 II(单调栈)

文章目录1. 题目2. 解题1. 题目 在一条单车道上有 n 辆车&#xff0c;它们朝着同样的方向行驶。 给你一个长度为 n 的数组 cars &#xff0c;其中 cars[i] [positioni, speedi] &#xff0c;它表示&#xff1a; positioni 是第 i 辆车和道路起点之间的距离&#xff08;单位&…

wpf计算字符大小占像素_LCD作为终端显示字符串的过程

LCD作为终端显示字符串的过程1.本文目的2.资源评估3.显示原理4.嵌入式上汉字处理5.结果验证与展示6.总结1.本文目的做嵌入式图形开发&#xff0c;我们往往都会利用到各种GUI进行交互设计&#xff0c;但是对于GUI的字符串处理与中文字库显示&#xff0c;也许并不会特别关注&…

java中对象作为参数_java中对象引用,特别作为参数时候注意事项

1、基础知识1Byte8bitByte和byte一个是对象&#xff0c;一个是基本数据类型而已&#xff0c;都是8bit2、java中对象引用和值传递&#xff1a;(1)、java中若一对象当作参数就是相当于&#xff0c;将变量对应的指向的地址内容传递进去了如下面代码&#xff1a;public class Test …