原创 鏈表的簡單原理

線性數據結構 動態數組、棧和隊列,底層都是依託靜態數組,靠resize解決固定容量的問題。(而動態數組之所以叫做動態,是因爲它從用戶的角度來看的,實現它的底層依靠的是靜態數組。) 鏈表與上面的三種線性數據結構都不同,它是真正的動態

原创 測驗4: 程序的控制結構 (第4周) + 練習4: 程序的控制結構 (第4周)

測驗4 選擇題 1.哪個選項不符合上述程序空白處的語法要求?{1;2;3;4;5} for var in ___: print(var) 2.哪個選項是以上程序的輸出結果?0 1 for i in range(0,2):

原创 鏈表的應用 -- LeetCode203. 移除鏈表元素

203.移除鏈表元素 這是LeetCode第203號問題,題目鏈接:https://leetcode-cn.com/problems/remove-linked-list-elements/ 刪除鏈表中等於給定值 val 的所有

原创 測驗3: 基本數據類型 (第3周) + 練習3: 基本數據類型 (第3周)

測驗3 選擇題 1.pow(x, 0.5)能夠計算x的平方根,計算負數的平方根將產生:複數 2.以下關於字符串.strip()方法功能說明正確的是:去掉字符串兩側指定字符 3.字符串是一個連續的字符序列,哪個選項可以實現打印字符信

原创 循環隊列的底層實現

文章目錄循環隊列的原理1.數組隊列的侷限性2.循環隊列是怎樣的3.爲什麼稱爲循環隊列代碼實現1.定義接口2.LoopQueue.java3.測試類Main.java4.測試結果分析寫在最後 循環隊列的原理 1.數組隊列的侷限性 數

原创 基於鏈表底層實現隊列

改進鏈表 鏈表對於頭部的操作都是容易的,因爲有類似head這樣的變量幫助標記鏈表頭的位置,同理,操作鏈表的尾部,可以設置一個Node型的tail變量來標記鏈表的尾部位置。使得鏈表的兩端插入元素都是容易的。 0 1 2 3 4

原创 創建一個屬於自己的數組類

文章目錄1.創建簡單的數組類Array,並對它進行封裝數組實現的基本思路Array.javaMain.java測試結果2.使用泛型關於泛型的一些絮叨將數組Array修改成支持泛型的數組GenericityGenericity.ja

原创 錯誤原因:無法啓動虛擬網卡適配任務 解決方法:禁止驅動程序強制簽名

問題描述 因爲疫情的關係,需要在家辦公,按照公司要求安裝了HUAWEI VPN Client,但是在建立連接的時候出現了下圖所示的報錯 錯誤原因:無法啓動虛擬網卡適配任務 這是因爲Windows有一個驅動程序簽名功能,它的作用是

原创 挑戰每日一題

聲明:所有題目均來自LeetCode 先立個flag,努力拿到offer之前,每日至少一題。 此文置頂,從現在開始。 文章目錄聲明:所有題目均來自LeetCode6月3日 面試題03. 數組中重複的數字6月4日 面試題 01.01

原创 基於動態數組實現二叉堆

文章目錄二叉堆的性質堆的基礎結構向堆中添加元素和Sift Up(上浮)取出堆中的最大元素和Sift Down(下沉)堆結構簡單測試堆的時間複雜度分析ReplaceHeapify在Main中測試heapify的性能完整的Array類

原创 映射的應用 -- LeetCode350. 兩個數組的交集 II

350. 兩個數組的交集 II LeetCode第350號問題,題目鏈接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/ 給定兩個數組,編寫一個函數

原创 棧的應用-有效的括號

括號匹配問題 寫表達式,表達式中有小括號“( )”,數組需要使用中括號“[ ]”,寫塊邏輯,for,if,while,定義函數、類都需要用到大括號“{ }”。 如果括號匹配不成功,IDE會報錯,編譯器檢查括號匹配是否正確,其實是使

原创 集合的應用 -- LeetCode804. 唯一摩爾斯密碼詞

804. 唯一摩爾斯密碼詞 LeetCode第804號問題,題目鏈接:https://leetcode-cn.com/problems/unique-morse-code-words/ 國際摩爾斯密碼定義一種標準編碼方式,將每個

原创 數組隊列和循環隊列的比較

數組隊列的複雜度分析 ArrayQueue<E> void enqueue(E e); // 入隊 O(1) 均攤 E dequeue(); // 出隊 O(n) E getFront();

原创 基於堆實現優先隊列

通過最大堆的底層實現優先隊列是極其容易的,幾乎所有的接口都可以直接複用。 隊列接口 Queue.java // 隊列接口支持泛型 public interface Queue<E> { void enqueue(E e);