【数据结构与算法 | 第五篇】力扣303,304前缀和数组
力扣 303. 区域和检索 - 数组不可变。用法本质:就是新创建一个数组,大小多1.然后数组的值是原数组与前面的和.这样用新数组-前面数组就行了.class NumArray { // 前缀和数组 private int[] preSum; // 输入一个数组构造前缀和 public NumArray(int[] nums) { // preSum[0] 0便于计算累加和 preSum new int[nums.length 1]; // 计算 nums 的累加和 for (int i 1; i preSum.length; i) { preSum[i] preSum[i - 1] nums[i - 1]; } } // 查询闭区间 [left, right] 的累加和 public int sumRange(int left, int right) { return preSum[right 1] - preSum[left]; } }题目要求我们来收集数组索引[left,right]之间的所有值思路:new一个新数组,用来存储数组当前以及前面之和,最后就可以用这个数组来后-前得到注意:new出来的数组大小要1,因为防止当0-1越界于是preSum[i]的含义变成了nums 前 i 个元素的和preSum[0]0表示前 0 个元素的和。力扣第 304 题「二维区域和检索 - 矩阵不可变class NumMatrix { // preSum[i][j] 记录矩阵 [0, 0, i-1, j-1] 的元素和 private int[][] preSum; public NumMatrix(int[][] matrix) { int m matrix.length, n matrix[0].length; if (m 0 || n 0) return; // 构造前缀和矩阵 preSum new int[m 1][n 1]; for (int i 1; i m; i) { for (int j 1; j n; j) { // 计算每个矩阵 [0, 0, i, j] 的元素和 preSum[i][j] preSum[i-1][j] preSum[i][j-1] matrix[i - 1][j - 1] - preSum[i-1][j-1]; } } } // 计算子矩阵 [x1, y1, x2, y2] 的元素和 public int sumRegion(int x1, int y1, int x2, int y2) { // 目标矩阵之和由四个相邻矩阵运算获得 return preSum[x21][y21] - preSum[x1][y21] - preSum[x21][y1] preSum[x1][y1]; } }这道题跟前面的类似,但更难理解和实现.理解背诵:我也晕了…构建新的,然后新的左上左上-原左上.返回1是跟原先的位置匹配,减去一人一边大的,加全大全小.大的全加1代码模版:classNumArray{// 前缀和数组privateint[]preSum;// 输入一个数组构造前缀和publicNumArray(int[]nums){// preSum[0] 0便于计算累加和preSumnewint[nums.length1];// 计算 nums 的累加和for(inti1;ipreSum.length;i){preSum[i]preSum[i-1]nums[i-1];}}// 查询闭区间 [left, right] 的累加和publicintsumRange(intleft,intright){returnpreSum[right1]-preSum[left];}}

相关新闻

煤炭稳产背景下井下线缆故障定位技术 鼎讯 DJY-1 实践

煤炭稳产背景下井下线缆故障定位技术 鼎讯 DJY-1 实践

Ⅰ. 矿井低阻接地故障阻碍煤炭稳定生产煤炭作为基础能源,井下采掘、通风排水及洗煤厂生产均依赖电力电缆稳定运行。井下落石冲击、机械剐蹭、高湿环境易造成电缆隐性破损,设备长期带载运行后,导体与屏蔽层易发生熔接,形成 0-10Ω …

2026/10/10 18:40:04 阅读更多 →
【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题

【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题

【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题 周五晚上8点,大学生小陈盯着电脑屏幕叹气——刚更新的漫画章节分散在不同页面,手动点击"保存图片"上百次后,文件夹里的图片顺序全乱了。这正是漫画爱好…

2026/10/12 17:14:37 阅读更多 →
51单片机定时/计数器与中断学习笔记

51单片机定时/计数器与中断学习笔记

一、定时器介绍定时器是51单片机内部资源,有三个定时器:T0、T1、T2(新增),用于每隔一段时间进行一次操作(计时系统变量加一)/替代长时间delay,避免资源占用1.工作模式:模…

2026/10/11 1:05:09 阅读更多 →

最新新闻

Vue3图片查看器:鼠标为中心缩放与拖拽实现详解

Vue3图片查看器:鼠标为中心缩放与拖拽实现详解

图片查看功能在后台系统、编辑器、图库工具里太常用了,但很多人做的时候都栽在同一个坑上:缩放是缩了,但中心点永远在左上角,鼠标滚轮一滚,图片直接跑偏;想拖拽吧,又和文字选中等浏览器默认行为…

2026/10/14 14:26:39 阅读更多 →
MyBatis-Plus BaseMapper核心解析与实战应用

MyBatis-Plus BaseMapper核心解析与实战应用

1. 理解MyBatis-Plus中的BaseMapper1.1 什么是BaseMapperBaseMapper是MyBatis-Plus框架提供的一个核心接口&#xff0c;它封装了最基础的CRUD&#xff08;Create, Read, Update, Delete&#xff09;操作方法。当我们在DAO层接口中声明extends BaseMapper<UserEntity>时&a…

2026/10/14 14:26:39 阅读更多 →
从IP102到田间部署:4400张图训练YOLO实现智慧农业害虫检测

从IP102到田间部署:4400张图训练YOLO实现智慧农业害虫检测

做智慧农业项目&#xff0c;真正让人抓狂的往往不是模型训练&#xff0c;而是数据本身。去年我在做一个农作物害虫检测原型时&#xff0c;面临一个很现实的问题&#xff1a;室内测试效果不错的模型&#xff0c;一拿到田间图片就“失忆”。翻遍公开数据集之后&#xff0c;我锁定…

2026/10/14 14:26:39 阅读更多 →
OpenSim外部几何模型导入全攻略:格式、单位与网格处理

OpenSim外部几何模型导入全攻略:格式、单位与网格处理

简介&#xff1a;面向OpenSim生物力学建模用户&#xff0c;这份资源演示在OpenSim 4.1中为腿部模型&#xff08;leg6dof9musc&#xff09;添加外部几何组件的完整方法&#xff0c;解决外骨骼、假肢等辅助设备与肌肉骨骼模型整合的典型问题。压缩包为rar格式&#xff0c;共3个文…

2026/10/14 14:26:39 阅读更多 →
农业害虫检测YOLO数据集:从训练调参到部署的实战指南

农业害虫检测YOLO数据集:从训练调参到部署的实战指南

1. 这个数据集到底解决了什么问题&#xff1a;先聊聊智慧农业的痛点做农业AI这几年&#xff0c;我最大的感触是&#xff1a;真正卡脖子的不是模型&#xff0c;是数据。你去GitHub上翻目标检测的经典数据集&#xff0c;COCO有33万张、VOC有两万张&#xff0c;看着不少&#xff0…

2026/10/14 14:26:39 阅读更多 →
R-CNN系列目标检测算法演进:关键改进与工程实践

R-CNN系列目标检测算法演进:关键改进与工程实践

1. 从R-CNN到Cascade R-CNN&#xff0c;这条技术主线凭什么值得反复研究做目标检测的人&#xff0c;几乎绕不开R-CNN这条家族线。从2014年的R-CNN开始&#xff0c;到Fast R-CNN、Faster R-CNN、Mask R-CNN&#xff0c;再到后来的Cascade R-CNN&#xff0c;这条路基本奠定了两阶…

2026/10/14 14:25:38 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起&#xff1a;它到底想解决什么问题第一次看到"AnyPS5"这个标题&#xff0c;我脑子里冒出来的第一个念头是&#xff1a;这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述&#xff1a;Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师&#xff0c;我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性&#xff0c;实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景&#xff0c;也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间&#xff0c;确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中&#xff0c;这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →