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;小编将…

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

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

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…

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

文章目录1. 题目2. 解题1. 题目 你打算做甜点&#xff0c;现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则&#xff1a; 必须选择 一种 冰激凌基料。可以添加 一种或多种 配料&#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…

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;也许并不会特别关注&…

商城简单类图

转载于:https://www.cnblogs.com/stit/p/4125095.html

交换机的基本配置实验报告_无线网络设计配置即实验报告

工程师ACK接到一个小型图书馆的网络组建项目&#xff0c;根据目前流行的网络组建以及项目地点的使用需要便捷性&#xff0c;采用AC控制的瘦AP模式。不需要AC来管理网络的AP是胖AP需要单独配置&#xff0c;有多少个AP就要配置多少次。组建模式&#xff1a;一楼划分20个VLAN,二楼…

Java 集合框架(List、Set、Map、Iterator、Stack、Properties)

文章目录1. ArrayList2. LinkedList3. HashSet4. TreeSet5. Iterator、ListIterator6. HashMap7. TreeMap8. Stack9. Properties 类读写简单 数据库相关文献&#xff1a;https://www.runoob.com/java/java-collections.html 1. ArrayList 类似动态数组 ArrayList al new Arr…

js获取当前url_javascript如何获取当前URL的主机名?

在javascript中可以使用location对象的hostname属性或者host属性来获取当前URL的主机名&#xff0c;下面本篇文章就来带大家认识这两种属性&#xff0c;希望对大家有所帮助。使用location hostname属性location hostname属性是用于返回当前URL的主机名&#xff1b;它会返回一个…

java访问数据库方式_java数据库访问(二)—JDBC方式(配合连接池)

上文记录了最基础的JDBC连接数据库的方法&#xff0c;但能看出一个问题&#xff0c;就是要不断的重复去创建connection和关闭connection&#xff0c;如果在对数据库的访问比较频繁的情况下&#xff0c;这种处理方式方式在性能方面是不合适的&#xff0c;下面使用JDBC配合数据库…

超频真的不难!G3258超频4.5GHz全攻略

奔腾G3258搭配主板详解【pconline 应用】目前DIY市场上最火热的装机组合莫过于奔腾20周年纪念版处理器G3258搭配B85芯片组主板&#xff0c;只要通过适当的超频&#xff0c;相对较低投入也能来不错的性能体验&#xff0c;因此在奔腾G3258还没上市时&#xff0c;业界对其充满期待…

Java入门到精通——基础篇之static关键字

一、概述static 关键字是声明静态变量&#xff0c;静态方法用的。static的含义是属于类且不属于类对象的变量和函数。二、static的产生。在创建对象的时候除非用new创建那个类的对象&#xff0c;否则实际上并没有获得任何对象只有当执行new来创建对象时数据存储空间才被分配&am…