線段樹---數據結構學習

線段樹的教程可以參照線段樹
這里推薦 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.pswp.cn/news/166309.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166309.shtml
英文地址,請注明出處:http://en.pswp.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;他都會騎自行車。而且他…