当前位置: 首页 > news >正文

C++ | Leetcode C++题解之第327题区间和的个数

题目:

题解:

class Solution {
public:int countRangeSumRecursive(vector<long>& sum, int lower, int upper, int left, int right) {if (left == right) {return 0;} else {int mid = (left + right) / 2;int n1 = countRangeSumRecursive(sum, lower, upper, left, mid);int n2 = countRangeSumRecursive(sum, lower, upper, mid + 1, right);int ret = n1 + n2;// 首先统计下标对的数量int i = left;int l = mid + 1;int r = mid + 1;while (i <= mid) {while (l <= right && sum[l] - sum[i] < lower) l++;while (r <= right && sum[r] - sum[i] <= upper) r++;ret += (r - l);i++;}// 随后合并两个排序数组vector<long> sorted(right - left + 1);int p1 = left, p2 = mid + 1;int p = 0;while (p1 <= mid || p2 <= right) {if (p1 > mid) {sorted[p++] = sum[p2++];} else if (p2 > right) {sorted[p++] = sum[p1++];} else {if (sum[p1] < sum[p2]) {sorted[p++] = sum[p1++];} else {sorted[p++] = sum[p2++];}}}for (int i = 0; i < sorted.size(); i++) {sum[left + i] = sorted[i];}return ret;}}int countRangeSum(vector<int>& nums, int lower, int upper) {long s = 0;vector<long> sum{0};for(auto& v: nums) {s += v;sum.push_back(s);}return countRangeSumRecursive(sum, lower, upper, 0, sum.size() - 1);}
};
http://www.lryc.cn/news/420944.html

相关文章:

  • C# Winform 多窗体切换方式一
  • 笔记本CPU天梯图(2024年8月),含AMD/骁龙等新CPU
  • GitLab-CI/CD指南
  • io目录操作学习
  • Ant-Design-Vue
  • 2024互联网暑期实习面经和流程记录分享
  • 风云崛起之拉氏变换和拉式逆变换
  • 1、.Net UI框架:WinUI - .Net宣传系列文章
  • 计算机的错误计算(五十九)
  • 【数学分析笔记】第1章第1节:集合(1)
  • 计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • GIT指令大全详解
  • ECCV2024,清华百度提出ReSyncer:可实现音频同步嘴唇动作视频生成。
  • 论文笔记:YOLOv8-QSD 自动驾驶场景小目标检测算法
  • Vue.js状态管理:Vuex与Pinia的比较
  • OJ题目【栈和队列】
  • [shell][git]git将当前分支的HEAD指针重置到最后一次提交的状态
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(六)卡尔曼滤波器二:图解卡尔曼滤波器;卡尔曼滤波器公式理解;面试答法;
  • 高性能日志系统 日志输出模块逻辑
  • haproxy基础
  • C++ 面试题常用总结 详解(满足c++ 岗位必备,不定时更新)
  • LVS实验——部署DR模式集群
  • pythonUI自动化008::allure测试报告(安装及应用)
  • 常用的 git 和 linux 命令有哪些?
  • MYSQL 删除一个字段前,判断字段是否存在
  • vulnstack-5
  • 回归预测|基于灰狼优化GWO-Transformer-BiLSTM组合模型的数据回归预测Matlab程序 多特征输入单输出
  • STM32的USB接口介绍
  • 【中等】 猿人学web第一届 第2题 js混淆 动态cookie 1
  • ubuntu 22.04 安装 docker(服务器从毛胚到精装)