线段树---数据结构学习

线段树的教程可以参照线段树
这里推荐 https://oi-wiki.org/
这个网站,数据结构讲的非常透。
线段树学了很多次忘了很多次,这次打算记录一下以后方便回顾(leetcode这类题遇见的不算特别多)。
样板例题 leltcode-307

#题目样板
class NumArray {private int[] segmentTree;private int n;public NumArray(int[] nums) {n = nums.length;segmentTree = new int[nums.length * 4];build(0, 0, n - 1, nums);}public void update(int index, int val) {change(index, val, 0, 0, n - 1);}public int sumRange(int left, int right) {return range(left, right, 0, 0, n - 1);}private void build(int node, int s, int e, int[] nums) {if (s == e) {segmentTree[node] = nums[s];return;}int m = s + (e - s) / 2;build(node * 2 + 1, s, m, nums);build(node * 2 + 2, m + 1, e, nums);segmentTree[node] = segmentTree[node * 2 + 1] + segmentTree[node * 2 + 2];}private void change(int index, int val, int node, int s, int e) {if (s == e) {segmentTree[node] = val;return;}int m = s + (e - s) / 2;if (index <= m) {change(index, val, node * 2 + 1, s, m);} else {change(index, val, node * 2 + 2, m + 1, e);}segmentTree[node] = segmentTree[node * 2 + 1] + segmentTree[node * 2 + 2];}private int range(int left, int right, int node, int s, int e) {if (left == s && right == e) {return segmentTree[node];}int m = s + (e - s) / 2;if (right <= m) {return range(left, right, node * 2 + 1, s, m);} else if (left > m) {return range(left, right, node * 2 + 2, m + 1, e);} else {return range(left, m, node * 2 + 1, s, m) + range(m + 1, right, node * 2 + 2, m + 1, e);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医院手术麻醉信息系统全套源码,自主版权,支持二次开发

医院手术麻醉信息系统全套商业源码&#xff0c;自主版权&#xff0c;支持二次开发 手术麻醉信息系统是HIS产品的中的一个组成部分&#xff0c;主要应用于医院的麻醉科&#xff0c;属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程&#xff0c;包括手术申请与…

人工智能中的文本分类:技术突破与实战指导

在本文中&#xff0c;我们全面探讨了文本分类技术的发展历程、基本原理、关键技术、深度学习的应用&#xff0c;以及从RNN到Transformer的技术演进。文章详细介绍了各种模型的原理和实战应用&#xff0c;旨在提供对文本分类技术深入理解的全面视角。 关注TechLead&#xff0c;分…

Hadoop发行版 Cloudera CDH 6.3.2及CM 安装包下载(阿里云盘 不限速)

CDH&#xff08;全称Cloudera’s Distribution, including Apache Hadoop&#xff09;是由Cloudera公司构建的Hadoop稳定发行版&#xff0c;不仅含有 Apache Hadoop&#xff0c;还整合了Hive、Spark等组件。 由于CDH已停止维护&#xff0c;且Cloudera不再为CDH提供免费的下载服…

git 使用过程错误集合

文章目录 1、git-credential-manager-core was renamed to git-credential-manager2、credential-manager-core is not a git command. See git --help. 1、git-credential-manager-core was renamed to git-credential-manager 出现以下提示建议尽快更新您的 Git 配置以使用新…

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SCN随机配置网络多变量回归预测 1.data为数据集&#xff0c;7个输入特征&#xff0…

基于Python实现汽车销售数据可视化+预测【500010086.1】

导入模块 import numpy as np import pandas as pd from pylab import mpl import plotly.express as px import matplotlib.pyplot as plt import seaborn as sns设置全局字体 plt.rcParams[font.sans-serif][kaiti]获取数据 total_sales_df pd.read_excel(r"./data/中…

独孤思维:看了那么多课程,还在问怎么赚钱的都是废物

你扪心自问&#xff1a; 为什么自己看了那么多赚钱项目&#xff0c;买了那么多课程&#xff0c;对标了那么多大咖&#xff0c;依旧赚不到钱&#xff1f; 是自己智商欠缺吗&#xff0c;是自己能力不行吗&#xff0c;是自己没有时间吗&#xff1f; 智商欠缺&#xff0c;没有谁…

机器学习第13天:模型性能评估指标

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 交叉验证 保留交叉验证 k-折交叉验证 留一交叉验证 混淆矩阵 精度与召回率 介绍 精度 召回率 区别 使用代码 偏差与方差 介绍 区…

zerotier 搭建 moon中转服务器 及 自建planet

搭建moon 服务器 环境准备 # 安装依赖 yum install wget gcc gcc-c git -y yum install json-devel -y# 下载及安装 curl -s https://install.zerotier.com/ | sudo bash节点ID 配置 配置moon.json文件 cd /var/lib/zerotier-one/# 导出依赖 zerotier-idtool initmoon ide…

SpringBoot项目连接,有Kerberos认证的Kafka

在连接Kerberos认证kafka之前&#xff0c;需要了解Kerberos协议 二、什么是Kerberos协议 Kerberos是一种计算机网络认证协议 &#xff0c;其设计目标是通过密钥系统为网络中通信的客户机(Client)/服务器(Server)应用程序提供严格的身份验证服务&#xff0c;确保通信双方身份的真…

Spring Boot 升级3.x 指南

Spring Boot 升级3.x 指南 1. 升级思路 先创建一个parent项目&#xff0c;打包类型为pom&#xff0c;继承自spring boot的parent项目 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId&…

历时三个月,我发布了一款外卖返钱小程序

近几年&#xff0c;推广外卖红包爆火&#xff0c;各种推广外卖红包的公众号层出不穷。于是&#xff0c;我就在想外卖红包究竟是怎么一回事。就这样&#xff0c;我带着问题开始了关于外卖红包的研究。 在研究的过程中&#xff0c;我开始了解商品联盟、推广分成、cps等一系列相关…

网络攻击当搭配什么产品比较好

网络攻击无处不在&#xff0c;当要时刻谨记 2014年&#xff0c;索尼影业受到黑客攻击&#xff0c;导致公司内部文件和电子邮件泄露。 2015年&#xff0c;美国联邦政府的办公人员信息遭到盗窃&#xff0c;影响了超过2100万人的个人信息。 2016年&#xff0c;Yahoo的3亿用户账…

java 中集合之一【map】,map循环

在Java中&#xff0c;常用的集合框架有以下几个&#xff1a; 1、List&#xff08;列表&#xff09;&#xff1a;List是有序的集合&#xff0c;允许包含重复元素。常用的实现类有ArrayList和LinkedList。ArrayList是基于动态数组实现的&#xff0c;支持快速随机访问&#xff1b;…

android之图片选择器--pictureselector

推荐一个安卓图片/视频/文件选择器。简单好用。 不多废话。直接上代码&#xff1a; 首先&#xff0c;添加依赖&#xff1a; //图片选择器api io.github.lucksiege:pictureselector:v3.11.1//图片压缩api io.github.lucksiege:compress:v3.11.1//图片裁剪api io.github.lucksie…

Springboot3+vue3从0到1开发实战项目(一)

一. 可以在本项目里面自由发挥拓展 二. 知识整合项目使用到的技术 后端开发 &#xff1a; Validation, Mybatis,Redis, Junit,SpringBoot3 &#xff0c;mysql&#xff0c;Swagger, JDK17 &#xff0c;项目部署 前端开发&#xff1a; Vue3&#xff0c;Vite&#xff0c;Router…

Java数组和集合

在Java中&#xff0c;数组和集合是两个重要的概念&#xff0c;它们用于存储和操作数据。本文将详细介绍Java中的数组和集合&#xff0c;包括它们的定义、初始化、访问和常见操作 一、数组&#xff08;Array&#xff09; 数组是一种用于存储相同类型数据的容器&#xff0c;它可…

DNS的各种进阶新玩法

你们好&#xff0c;我的网工朋友&#xff0c;今天和你聊聊DNS。 01 什么是DNS&#xff1f; mac地址诞生&#xff0c;可是太不容易记忆了&#xff0c;出现了简化了IP形式&#xff0c;它被直接暴露给外网不说&#xff0c;还让人类还是觉得比较麻烦&#xff0c;干脆用几个字母算了…

【Git】一文教你学会 submodule 的增、删、改、查

添加子模块 $ git submodule add <url> <path>url 为想要添加的子模块路径path 为子模块存放的本地路径 示例&#xff0c;添加 r-tinymaix 为子模块到主仓库 ./sdk/packages/online-packages/r-tinymaix 路径下&#xff0c;命令如下所示&#xff1a; $ git subm…

用自己热爱的事赚钱,是多么的幸福

挖掘天赋可能有些困难&#xff0c;但挖掘爱好就简单多啦&#xff01;最幸福的事情就是能用自己喜欢的事情赚钱。 我们要说的是一个博主&#xff0c;他非常喜欢骑自行车&#xff0c;虽然他的工作是在外贸公司做销售&#xff0c;但每当有空时&#xff0c;他都会骑自行车。而且他…