【数据结构与算法 | 第五篇】力扣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/7/25 15:19:02 阅读更多 →
【效率革命】哔咔漫画下载器:解决漫画收藏者的批量获取与管理难题

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

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

2026/7/24 22:47:20 阅读更多 →
51单片机定时/计数器与中断学习笔记

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

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

2026/7/25 0:10:03 阅读更多 →

最新新闻

Win11Debloat:专业Windows系统优化工具全面解析

Win11Debloat:专业Windows系统优化工具全面解析

Win11Debloat:专业Windows系统优化工具全面解析 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customiz…

2026/7/25 22:27:50 阅读更多 →
CodeBlocks+wxWidgets环境搭建与俄罗斯方块游戏开发实战

CodeBlocks+wxWidgets环境搭建与俄罗斯方块游戏开发实战

1. 项目概述与背景最近在社区里看到不少朋友在问,想用C做个带图形界面的桌面小工具或者小游戏,但一上来就被MFC或者Qt的庞大和复杂给劝退了。其实,除了这些“巨无霸”,我们还有一个非常经典且轻量的选择——wxWidgets。它是一套用…

2026/7/25 22:27:50 阅读更多 →
AI工具如何提升论文写作效率:全流程解决方案

AI工具如何提升论文写作效率:全流程解决方案

1. 论文写作的痛点与AI解决方案写论文这件事,从本科生到教授都逃不掉。我带了七年研究生,见过太多学生卡在文献综述憋不出字、数据分析画不出图、参考文献格式混乱的困境。更可怕的是,很多人把80%时间浪费在机械性操作上,真正用于…

2026/7/25 22:27:50 阅读更多 →
30分钟上手semantic_slam:从环境配置到生成首个语义地图的快速教程

30分钟上手semantic_slam:从环境配置到生成首个语义地图的快速教程

30分钟上手semantic_slam:从环境配置到生成首个语义地图的快速教程 【免费下载链接】semantic_slam Real time semantic slam in ROS with a hand held RGB-D camera 项目地址: https://gitcode.com/gh_mirrors/se/semantic_slam semantic_slam是一个基于ROS…

2026/7/25 22:27:50 阅读更多 →
AutoKuma vs 手动配置:为什么自动化监控能节省你90%的时间

AutoKuma vs 手动配置:为什么自动化监控能节省你90%的时间

AutoKuma vs 手动配置:为什么自动化监控能节省你90%的时间 【免费下载链接】AutoKuma AutoKuma is a utility that automates the creation of Uptime Kuma monitors based on Docker container labels. With AutoKuma, you can eliminate the need for manual moni…

2026/7/25 22:27:50 阅读更多 →
NVIDIA Profile Inspector终极指南:解锁隐藏设置,5步彻底解决显卡性能瓶颈

NVIDIA Profile Inspector终极指南:解锁隐藏设置,5步彻底解决显卡性能瓶颈

NVIDIA Profile Inspector终极指南:解锁隐藏设置,5步彻底解决显卡性能瓶颈 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 想要超越NVIDIA控制面板的限制,深度优化显…

2026/7/25 22:26:50 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻