一、技术总结

  1. 可以开始把每个数都直接相加当前这个位置的存放所有数之前相加的结果,这样就是递增的了,把i,j位置数相减就是他们之间数的和。
  2. 需要写一个函数用于查找之间的值,如果有就放返回大于等于这个数的右下标,函数中采用引用的传参方式,就不需要返回值了。
  3. 在处理存放下标问题上,如果发现有更小的数时,直接清空之前存放的值。

二、参考代码

#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int n, m;
vector<int> sum, result;
void Func(int i, int &j, int &tempsum){
int left = i, right = n;
while(left < right){
int mid = (left + right)/2;
if(sum[mid] - sum[i-1] >= m){
right = mid;
}else{
left = mid + 1;
}
}
j = right;
tempsum = sum[j] - sum[i-1];
}
int main(){
cin >> n >> m;
sum.resize(n+1);
for(int i = 1; i <= n; i++){
scanf("%d", &sum[i]);
sum[i] += sum[i-1];
}
int minans = sum[n];
for(int i =1; i <= n; i++){
int j, tempsum;
Func(i, j, tempsum);
if(tempsum > minans) continue;
if(tempsum >= m){
if(tempsum < minans){
result.clear();
minans = tempsum;
}
result.push_back(i);
result.push_back(j);
}
}
for(int i = 0; i < result.size(); i += 2){
printf("%d-%d\n", result[i], result[i+1]);
}
return 0;
}

最新文章

  1. Python之路,Day6 - Python基础6
  2. thinkPHP实现静态页的方法-buildHtml
  3. NLP--十项沟通前的思想准备
  4. Sql Server系列:Insert语句
  5. 利用xtrabackup备份mysql数据库
  6. 使用扫描二维码打开app
  7. 开发Yii2过滤器并通过behaviors()行为调用
  8. &quot;make_path&quot; is not exported by the File::Path modul
  9. eclipse快捷键(转载)
  10. dynamic_cast 转换示例
  11. 在Linux机器上安装telnet命令
  12. mpvue小程序开发之 集成第三方UI框架Vant Weapp UI
  13. vue的父子组件间的相互传参props及props数据的多种验证机制
  14. PDF的水印怎么去掉
  15. 关于isNaN()函数的细节
  16. tensorflow中的tf.app.run()的使用
  17. Windows10上安装Keras 和 TensorFlow-GPU
  18. 菜鸟学SSH(十六)——Struts2内部是如何工作的
  19. Cordova学习
  20. 3.1)DFM-塑胶件设计总章

热门文章

  1. pytorch_模型参数-保存,加载,打印
  2. Java设计模式:Factory Method(工厂方法)模式
  3. Fusionstorage的逻辑架构
  4. TCP协议 - 面向连接
  5. MySQL EXPLAIN 语句
  6. Spring Boot 中如何配置 Profile
  7. 基于vue+uniapp直播项目|uni-app仿抖音/陌陌直播室
  8. 模仿UIApplication创建单例
  9. FileSizeLimitExceededException
  10. liteos 异常接管(十五)