国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

leetcode327

2019-11-08 01:43:29
字體:
供稿:網(wǎng)友
超時(shí) 該題目一開始想采用DP的思想,從前往后統(tǒng)計(jì)每一個(gè)位置可能的取值情況。
Data MightValue
4 4
2 2,6
-1 -1,1,5

每一個(gè)值都有自己可能的取值。但是超時(shí)了,vector的更新還是太會(huì)費(fèi)時(shí)間。

注意:要用double類型,或者long long類型,因?yàn)椴煌膇nt類型相加會(huì)出現(xiàn)內(nèi)存泄漏的情況

class Solution {public: vector<double> newList(int number, vector<double> oldList,int& count,int lower,int upper) { vector<double> result; result.push_back(number); if(number<=(double)upper && number>=(double)lower) count++; for(int i=0;i<oldList.size();i++) { result.push_back(double(number)+double(oldList[i])); if(result.back()<=(double)upper && result.back()>=(double)lower) count++; } return result; } int countRangeSum(vector<int>& nums, int lower, int upper) { if(nums.size()==0) return 0; int count=0; vector<double> list; for(int i=0;i<nums.size();i++) list=newList(nums[i],list,count,lower,upper); return count; }};改進(jìn)代碼(兩種方法是一樣的,只不過這種方法避免了vector的不斷更新,而是保存了其sum) 因此采用另一種方法,這種方法利用multiset類型。 值得注意的是: multiset可以維持一個(gè)有元素重復(fù)的數(shù)組,并且數(shù)組是按照從小到大的順序自動(dòng)存儲(chǔ)。set則不允許有元素重復(fù)。map不允許key重復(fù),不過也是安裝key值自動(dòng)從小到大排序。

正確代碼采用了另一種處理思路。最主要的是不再處理原始數(shù)據(jù),而是處理他們的sum。由于計(jì)算的區(qū)間是連續(xù)區(qū)間,所以[i,j] 區(qū)間的和就是sum[j]-sum[i]。其中有幾個(gè)特殊的地方需要注意:

當(dāng)i=0時(shí),區(qū)間[0,j]的和就是sum[j]-sum[0]=sum[j],因此sum[0]=0。所以一開始,數(shù)組需要先增加一個(gè)元素0。當(dāng)i=j時(shí),區(qū)間[j,j]的和就是sum[j]-sum[j]=0。不對(duì),需要單獨(dú)處理。class Solution {public: int countRangeSum(vector<int>& nums, int lower, int upper) { if(nums.size()==0) return 0; int count=0; multiset<double> sumSet; double sum=0; sumSet.insert(0); for(int i=0;i<nums.size();i++) { sum+=(double)nums[i]; multiset<double>::iterator itStart,itEnd; itStart=sumSet.lower_bound(sum-(double)upper); itEnd=sumSet.upper_bound (sum-(double)lower); count+=std::distance(itStart,itEnd); cout<<count<<" "; sumSet.insert(sum); } return count; }};
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘肃省| 铜山县| 肥东县| 博野县| 陆川县| 银川市| 通河县| 蓝山县| 体育| 锡林郭勒盟| 东山县| 松滋市| 巴东县| 湘潭市| 榆社县| 沧源| 峨眉山市| 象州县| 凌源市| 龙陵县| 齐河县| 于田县| 绥棱县| 开平市| 阿图什市| 芮城县| 聊城市| 虹口区| 桐柏县| 建始县| 嵊州市| 禹城市| 达拉特旗| 镇巴县| 怀来县| 醴陵市| 贵南县| 平凉市| 利川市| 丰都县| 日喀则市|