12.10_黑馬數據結構與算法筆記Java

目錄

058 鏈表 e10 判環算法1

thinking:什么是空指針?

058 鏈表 e10 判環算法2

059 數組 e01 合并有序數組1

059 數組 e01 合并有序數組2

060 隊列 鏈表實現1

061 隊列 鏈表實現2

062 隊列 環形數組實現 方法1-1

063 隊列 環形數組實現 方法1-2

064 隊列 環形數組實現 方法2

065 隊列 環形數組實現 方法3-1

066 隊列 環形數組實現 方法3-2

067 隊列 環形數組實現 方法3-3

068 隊列 環形數組實現 方法3-4

069 隊列 e01 二叉樹層序遍歷1

069 隊列 e01 二叉樹層序遍歷2


058 鏈表 e10 判環算法1

重點理解最后的結合部分:兔子充當烏龜,再走a步,就可以來到環入口。而起點到入口又剛好是a步?

thinking:什么是空指針?

解析Java空指針異常:原因、避免和處理-CSDN博客

因此,這里要加上h.next != null ,因為如果h.next 是null,那h.next.next 就相當于對null執行操作,就會出現空指針異常。

058 鏈表 e10 判環算法2

?

如果環是起點終點都重合的一個閉合大環,就會出現bug,因此,調整一下代碼順序,先判斷烏龜和兔子相遇的時候在不在同一位置,如果在同一位置,說明是閉合大環,說明他們此時此刻的位置就是環的入口,直接返回就好,就不要都各再走一步了。

059 數組 e01 合并有序數組1

?

059 數組 e01 合并有序數組2

?

060 隊列 鏈表實現1

061 隊列 鏈表實現2

如果調用了有參構造,就以指定的容量為準;如果沒有調用,那就沒有限制,因為我們一開始設置了Integer.MAX_VALUE?

?

?做了以上改動

?

062 隊列 環形數組實現 方法1-1

判斷空:首尾指針指著一個東西

063 隊列 環形數組實現 方法1-2

移動指針,意思是控制最后操作的數組范圍是什么。?因為不是整一個圓圈都是有效的數組范圍。

064 隊列 環形數組實現 方法2

原先的判斷滿還是空的方法,需要留0給尾指針。但是現在判斷是滿是空就不用了,因為引用了size這個變量。?

065 隊列 環形數組實現 方法3-1

?

左邊是新方法,右邊是舊方法。

左邊:tail不是索引,索引是通過tail計算出來的

右邊:tail本身是索引,但后面要馬上計算下一個索引的位置

?

066 隊列 環形數組實現 方法3-2

將Integer轉換成Long型,就可以避免head非常大時候,由正數轉換成負數,然后出現bug的現象。

067 隊列 環形數組實現 方法3-3

理解:移動后的 1101 就是商,那移沒的就是余數,也就是111?

?

可以避免head非常大時候,由正數轉換成負數,然后出現bug的現象。這樣就可以解決取模運算的性能問題以及符號的問題

雖然tail超過了范圍,但是它與其他東西的運算結果沒有超過范圍就可以了。

而且 數組的最大長度也這個值,數組的尾部減去數組的頭部是不可能超過數組的最大長度的。

068 隊列 環形數組實現 方法3-4

將非2的n次方數轉化為2的n次方

如果給的不是2的n次方,就可以采用這樣的方法。

方法一

?方法二

?

方法三

069 隊列 e01 二叉樹層序遍歷1

打印出來,再看看有沒有孩子,有就放進去【】里面。?

069 隊列 e01 二叉樹層序遍歷2

想要產生空格,出來的效果像一棵樹一樣的話,就需要控制它什么時候換行,問題轉化成,這一層的節點數有多少個,我要循環多少次才要換行。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

帶有 RaspiCam 的 Raspberry Pi 監控和延時攝影攝像機

一、說明 一段時間以來,我一直想構建一個運動激活且具有延時功能的樹莓派相機,但從未真正找到我喜歡的案例。我在thingiverse上找到了這個適合樹莓派和相機的好案例。它是為特定的魚眼相機設計的,但從模型來看,我擁有的廉價中國魚…

【Vulnhub 靶場】【Hackable: III】【簡單 - 中等】【20210602】

1、環境介紹 靶場介紹:https://www.vulnhub.com/entry/hackable-iii,720/ 靶場下載:https://download.vulnhub.com/hackable/hackable3.ova 靶場難度:簡單 - 中等 發布日期:2021年06月02日 文件大小:1.6 GB 靶場作者&…

k8s常用操作命令

目標 了解 Kubernetes基礎命令。對已部署的應用故障排除。 基礎命令:create,delete,get,run,expose,set,explain,edit create 命令:根據文件或者輸入來創建資源 # 創建…

消融實驗:深度學習的關鍵分析工具

消融實驗:深度學習的關鍵分析工具 在深度學習和機器學習領域,消融實驗(Ablation Study)是一種重要的實驗方法,用于理解和評估模型的各個組成部分對其整體性能的貢獻。通過這種方法,研究人員可以更深入地了…

Docker | 自定義網絡

?作者簡介:大家好,我是Leo,熱愛Java后端開發者,一個想要與大家共同進步的男人???? ??個人主頁:Leo的博客 ??當前專欄:Docker系列 ?特色專欄: MySQL學習 ??本文內容: Docker | 自定義網絡 ??個人知識庫: 知識庫,歡迎大家訪問 1.前言 大家好,我是Leo哥…

當視覺遇到毫米波雷達:自動駕駛的三維目標感知基準

? 文章:Vision meets mmWave Radar: 3D Object Perception Benchmark for Autonomous Driving 作者: Yizhou Wang, Jen-Hao Cheng, Jui-Te Huang , Sheng-Yao Kuan , Qiqian Fu , Chiming Ni 編輯:點云PCL 歡迎各位加入知識星球,獲取PDF…

vector類

> 作者簡介:?舊言~,目前大二,現在學習Java,c,c,Python等 > 座右銘:松樹千年終是朽,槿花一日自為榮。 > 目標:熟悉vector庫 > 毒雞湯:從人生低谷…

UVM中的config_db機制傳遞interface

(1)定義interface interface my_if(input clk, input rst_n);logic [7:0] data;logic valid;endinterface (2)在tb中使用interface 定義了interface后,在top_tb中實例化DUT時,就可以直接使用。 先…

【面試總結】Java面試題目總結(一)

&#xff08;以下僅為個人見解&#xff0c;如果有誤&#xff0c;歡迎大家批評并指出錯誤&#xff0c;謝謝大家&#xff09; 1.項目中的驗證碼功能是如何實現的&#xff1f; 第一步&#xff1a;在項目的pom.xml文件中導入 EasyCaptcha 的依賴&#xff1b; <dependency>…

軟件崩潰時Visual Studio中看不到有效的調用堆棧,使用Windbg動態調試去分析定位

目錄 1、問題說明 2、使用Windbg查看崩潰時詳細的函數調用堆棧

SQL命令---修改字段名

介紹 使用sql語句修改字段名。 命令 alter table 表名 change 舊字段名 新字段名 新數據類型;例子 將a表id字段名改為id1 alter table a change id id1 int(12) NOT NULL;

20231207給NanoPC-T4(RK3399)開發板刷Android12的挖掘機方案的LOG

20231207給NanoPC-T4(RK3399)開發板刷Android12的挖掘機方案的LOG 2023/12/7 23:50 SDK&#xff1a;rk356x_android12_220722.tgz 只修改DTS的DTC部分就【直接】可以跑NanoPC-T4 參考資料&#xff1a; http://www.friendlyelec.com.cn/agent.asp http://www.friendlyelec.com.c…

[python高級編程]:01-數據結構

此系列主要用于記錄Python學習過程中查閱的優秀文章&#xff0c;均為索引方式。其中內容只針對本作者一人&#xff0c;作者熟悉了解的內容不再重復記錄。 目錄 01-列表推導式 列表推導同filter和map的比較 02-元組 元組拆包 具名元組 01-列表推導式 列表推導同filter和map的比…

實現安裝“自由化”!在Windows 11中如何繞過“您嘗試安裝的應用程序未通過微軟驗證”

這篇文章描述了如果你不能安裝應用程序,而是當你在Windows 11中看到消息“您嘗試安裝的應用程序未通過微軟驗證”時該怎么辦。完成這些步驟將取消你安裝的應用程序必須經過Microsoft驗證的要求。 使用設置應用程序 “設置”應用程序提供了繞過此警告消息的最簡單方法,以便你…

Windows10下MySQL5.7.31解壓版安裝與卸載

一、安裝 1進入官網下載MySQL5.7.31解壓版&#xff1a; MySQL :: Download MySQL Community Server (Archived Versions) 2解壓文件 解壓目錄到D:\developer_tools\MySQL\mysql-5.7.31-winx64&#xff0c;在bin同級目錄下創建my.ini文件&#xff0c;寫入以下代碼&#xff1…

python簡易學生管理 + MySQL

數據庫表 Python代碼部分 import pymysqlclass StMgmt(object):def tips(self):"""提示用戶選擇的操作"""print("""學生管理系統 1.01.查看所有信息2.查看學生信息3.修改學生信息4.增加學生信息5.退出學生系統"""…

【網絡安全技術】傳輸層安全——SSL/TLS

一、TLS位置及架構 TLS建立在傳輸層TCP/UDP之上&#xff0c;應用層之下。 所以這可以解決一個問題&#xff0c;那就是為什么抓不到HTTP和SMTP包&#xff0c;因為這兩個在TLS之上&#xff0c;消息封上應用層的頭&#xff0c;下到TLS層&#xff0c;TLS層對上層消息整個做了加密&…

數的劃分(遞歸)

題目名字 數的劃分 題目鏈接 題意 給數字n&#xff0c;講數字n分為m份&#xff0c;共有多少種分法&#xff0c;不能重復&#xff0c;分成一樣的數字也不行 思路 看到這種分數字的先化成有多少個球要分到多少個籃子里去再想兩個分法并且加起來&#xff0c;一個是每個籃子最多只…

<JavaEE> 經典設計模式之 -- 單例模式(“餓漢模式”和“懶漢模式”實現單例模式)

目錄 一、單例模式概述 二、“餓漢模式”實現單例模式 三、“懶漢模式”實現單例模式 3.1 單線程下的“懶漢模式” 3.2 多線程下的“懶漢模式” 一、單例模式概述 1&#xff09;什么是單例模式&#xff1f; 單例模式是一種設計模式。 單例模式可以保證某個類在程序中只存…

【Java數據結構 -- 順序表】

List和ArrayList與順序表 一. List1.1 List介紹2.1 常見接口介紹3.1 List的使用 二. ArrayList與順序表1.線性表2.順序表2.1 接口的實現2.2 順序表的創建2.3 順序表的打印2.4 順序表的插入2.5 順序表的按索引位置插入數據2.6 判斷順序表是否包含某個數2.7 返回順序表某個數的索…