题目描述:

给你一个数组 nums ,它包含 n 个正整数。你需要计算所有非空连续子数组的和,并将它们按升序排序,得到一个新的包含 n * (n + 1) / 2 个数字的数组。

请你返回在新数组中下标为 left 到 right (下标从 1 开始)的所有数字和(包括左右端点)。由于答案可能很大,请你将它对 10^9 + 7 取模后返回。

示例 1:

输入:nums = [1,2,3,4], n = 4, left = 1, right = 5
输出:13
解释:所有的子数组和为 1, 3, 6, 10, 2, 5, 9, 3, 7, 4 。将它们升序排序后,我们得到新的数组 [1, 2, 3, 3, 4, 5, 6, 7, 9, 10] 。下标从 le = 1 到 ri = 5 的和为 1 + 2 + 3 + 3 + 4 = 13 。

示例 2:

输入:nums = [1,2,3,4], n = 4, left = 3, right = 4
输出:6
解释:给定数组与示例 1 一样,所以新数组为 [1, 2, 3, 3, 4, 5, 6, 7, 9, 10] 。下标从 le = 3 到 ri = 4 的和为 3 + 3 = 6 。

示例 3:

输入:nums = [1,2,3,4], n = 4, left = 1, right = 10
输出:50

提示:

  • 1 <= nums.length <= 10^3
  • nums.length == n
  • 1 <= nums[i] <= 100
  • 1 <= left <= right <= n * (n + 1) / 2

代码:

class Solution {
public:int rangeSum(vector<int>& nums, int n, int left, int right) {vector<int>res;int sum=0;for(int i=0;i<n;i++){sum=0;for(int j=i;j<n;j++){sum+=nums[j];res.push_back(sum);}}sort(res.begin(),res.end());sum=0;for(int i=left-1;i<=right-1;i++)sum=(sum+res[i])%(1000000000+7);return sum;}
};

125.(5445)子数组和排序后的区间和(第30场双周赛)相关推荐

  1. Java实现 LeetCode第30场双周赛 (题号5177,5445,5446,5447)

    这套题不算难,但是因为是昨天晚上太晚了,好久没有大晚上写过代码了,有点不适应,今天上午一看还是挺简单的 5177. 转变日期格式 给你一个字符串 date ,它的格式为 Day Month Year ...

  2. LeetCode 581. 最短无序连续子数组(排序单调栈)

    文章目录 1. 题目 2. 解题 2.1 排序 2.2 4次遍历 2.3 单调栈 1. 题目 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. ...

  3. LeetCode 581. 最短无序连续子数组 (unfinished 排序+双指针)

    581. 最短无序连续子数组 class Solution {public:int findUnsortedSubarray(vector<int>& nums) {vector& ...

  4. 最大值减去最小值小于或等于num的子数组数量

    题目:给定数组arr和整数num,共返回有多少个子数组满足如下情况:子数组中的最大值减去最小值小于或等于num. 要求,时间复杂度O(N). 基本思路: 首先明确两点: 1.如果子数组arr[i-j] ...

  5. Oracle-分析函数之排序后顺序号row_number()

    概述 ORACLE函数系列: Oracle常见函数大全 Oracle-分析函数之连续求和sum(-) over(-) Oracle-分析函数之排序值rank()和dense_rank() Oracle ...

  6. 栈和队列---最大值减去最小值小于或等于num的子数组数量

    [题目] 给定数组arr和整数num,共返回有多少个子数组满足如下情况:子数组中的最大值减去最小值小于或等于num. 要求,时间复杂度O(N). [基本思路] 首先明确两点: 1.如果子数组arr[i ...

  7. 需要排序的最短子数组长度

    题目:给定一个无序数组,求出需要排序的最短子数组长度 例如:arr = [1,5,3,4,2,6,7] 返回4,因为只有[5,3,4,2]需要排序 解决这个问题可以做到时间复杂度为O(N),额外空间复 ...

  8. 1)输入一个数组,求子数组最大值 2)xx 3)利用冒泡排序法排序

    1) 解题思路: 首先,输入数组元素,循环判断是否为顺序子数组,若是,累加元素并判断它的下一位与下两位的大小关系 ,若不是,则重新累加元素,然后将子数组输出,最后判断子数组大小即可 遇到的问题: 需要 ...

  9. 需要排序的最短子数组的长度——是一个排序好的数组,中间某一部分被打乱了,让你找出打乱的那个子数组...

    需要排序的最短子数组的长度 貌似在leetcode上遇到过,就是一个排序好的数组,中间某一部分被打乱了,让你找出打乱的那个子数组. from:https://blog.csdn.net/behboyh ...

最新文章

  1. java形参的传递机制
  2. C++_引用变量探究
  3. 关于oracle中table函数的使用
  4. 对Tensor结果使用opencv2中的操作
  5. php微信浏览器清空cookie,微信内置浏览器中的cookie很诡异呀
  6. hibench测试出现问题--zookeeper
  7. 疫情之下的“催化剂”:在线经济崛起 房产数字化变革加速
  8. 知道一点怎么设直线方程_直线初步
  9. 中gcd函数_算法|博弈论入门(函数讲解+真题模板)
  10. 播放内核的“瘦身”,你只需要这样做!
  11. thinkphp创建对象及数据操作
  12. 大学校讯通需求调研报告之精华
  13. matlab相关系数的显著性检验
  14. 商场收银系统服务器安装在哪里,收银系统怎么安装?详细步骤分享
  15. MW6MaxiCode ACX溢出
  16. 打包 压缩 解压缩命令
  17. FastAdmin表单工具栏自定义按钮
  18. Excel玩转统计图
  19. 官网电子安全证书端口即将到期!新型诈骗短信!
  20. Oracle中MONTHS_BETWEEN函数的使用

热门文章

  1. python形态选股_用Python选一个自己的股票池!堪比资深的炒股选手!
  2. 基石为勤能补拙的迷宫之旅——第十二天(Python函数装饰器)
  3. pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算
  4. 002 常见量化交易平台使用
  5. C# DirectX.DirectShow-音视频播放或捕获
  6. 荣耀v10升级android10,大快人心?荣耀V10、荣耀8X、荣耀10,可以升级EMUI10了
  7. 4294967295,
  8. 褒贬不一,中科院信工所是否值得报考?
  9. 矿大计算机考研学硕,【经验贴】2020中国矿业大学(北京)会计学学硕考研经验...
  10. 使用Vagrant快速创建linux虚拟机