博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 327.Count of Range Sum
阅读量:5372 次
发布时间:2019-06-15

本文共 1199 字,大约阅读时间需要 3 分钟。

Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.

Range sum S(i, j) is defined as the sum of the elements in nums between indices i and j (i ≤ j), inclusive.

Note:

A naive algorithm of O(n2) is trivial. You MUST do better than that.

Example:

Input: nums = [-2,5,-1], lower = -2, upper = 2,

Output: 3 

Explanation: The three ranges are : [0,0], [2,2], [0,2] and their respective sums are: -2, -1, 2.

分析:题目意思是统计处于【lower,upper】的区间和个数。

1.采用分治法,利用归并排序

class Solution {public:    int ans=0;    int low, up;    void merge(long long s[], int l, int m, int r) {        int x=m+1,y=m+1;        for(int z = l; z <= m; z++) {                      while(x<=r&&s[x]-s[z]
=r) return; solve(s, l, m); solve(s, m+1, r); merge(s,l,m,r); } int countRangeSum(vector
& nums, int lower, int upper) { low = lower; up = upper; int len = nums.size(); if(len==0) return 0; long long s[10005]={0}; for(int i = 1; i <= len; i++) s[i] = s[i-1]+nums[i-1]; solve(s,0,len); return ans; }};

  

 

转载于:https://www.cnblogs.com/promise123/p/10628604.html

你可能感兴趣的文章
机器学习基础
查看>>
Struts2中自定义类型转换器
查看>>
java 用RGB生成图片动态命名
查看>>
.NET DotnetSpider--WebDrvierSpider(ajax动态加载的数据获取)
查看>>
HashMap中resize()剖析
查看>>
转:ubuntu搭建lamp环境
查看>>
linux用户管理
查看>>
day40 python MySQL【四】 之 【索引】【视图】【触发器】【存储过程】【函数】...
查看>>
Hack--兼容性测试
查看>>
字符编码问题
查看>>
android Process.killProcess 和 System.exit(0) 区别
查看>>
第六章 第一个Linux驱动程序: 统计单词个数
查看>>
python 分割字符。
查看>>
Hadoop2.x 关于日志文件位置
查看>>
SpringMVC02静态资源的访问
查看>>
一些前台功能代码实现
查看>>
Centos
查看>>
CSS层叠样式表的层叠是什么意思(转自知乎)
查看>>
似乎在梦中见过的样子 (KMP)
查看>>
Codeforces Round #503 (by SIS, Div. 2) D. The hat
查看>>