原创 進擊的小白——知識點:手把手學鏈表(C語言)

看了挺多關於鏈表的文章,但都感覺寫的不夠詳細,主要是不夠具象,今天自己來寫一個圖文並茂的,圖片主要是對每句代碼執行後鏈表狀態的直觀反映。 先來介紹關於鏈表的幾個概念: 首節點:存放第一個有效數據的節點。 尾節點:存放最後一個有效

原创 進擊的小白——LeetCode刷題總結(未完待續)

在寫完一個算法的時候,尤其是算法中涉及到循環的時候,要考慮一下有沒有哪些循環是完全無用的,如刷題筆記016中,每次循環可以先判斷haystack中剩餘長度是否足夠容納一個needle的長度,如果不夠,那就沒有繼續循環的必要,直接

原创 進擊的小白Day028——LeetCode刷題筆記004:最長公共前綴

題目來自LeetCode。 題目描述: 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 “”。 示例 1: 輸入: [“flower”,“flow”,“flight”] 輸出: “fl” 示例 2

原创 進擊的小白Day026——LeetCode刷題筆記001:兩數之和(static、return的用法)

題目來自從LeetCode。 題目描述: 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數

原创 進擊的小白Day039——LeetCode刷題筆記:知識點:遞歸常見問題(未完待續)

時隔大半年,重新開始 總結一下遞歸遇到的一些問題 1.遞歸中如果要用全局變量對遞歸函數,可以選擇用動態分配內存的指針來代替。 例:“19. 刪除鏈表的倒數第N個節點”

原创 進擊的小白Day038——LeetCode刷題筆記:知識點:報錯總結(未完待續)

memset報錯內存訪問衝突 解決辦法:頭文件中包含windows.h

原创 進擊的小白Day037——LeetCode刷題筆記:知識點:用指針替換數組

參數以指針的形式作爲函數形參時,可以以數組的形式調用 char test(char **strs) { char a = strs[0][1]; //直接數組表示 } 例:“14. 最長公共前綴” 2. 定義的指針當數組

原创 進擊的小白Day037——LeetCode刷題筆記:知識點:考慮所有特殊情況(未完待續)

涉及字符串 ①多個字符串時,需要考慮字符串個數爲0或1時的情況 ②單個字符串時,需要考慮字符串字符個數爲0或1的情況 例:“14. 最長公共前綴” 遍歷數組時,循環從1而不是從0開始時,即默認數組爲非空 例:“14. 最長公共前

原创 進擊的小白——知識點:Matlab基本語法

ones() 生成單位矩陣或單位向量 ones(N)表示生成N*N的單位矩陣: >> ones(3) ans = 1 1 1 1 1 1 1 1 1

原创 進擊的小白——LeetCode刷題感想(未完待續)

在寫完一個算法的時候,尤其是算法中涉及到循環的時候,要考慮一下有沒有哪些循環是完全無用的,如刷題筆記016中,每次循環可以先判斷haystack中剩餘長度是否足夠容納一個needle的長度,如果不夠,那就沒有繼續循環的必要,直接返回

原创 進擊的小白Day036——LeetCode刷題筆記016:實現strStr()

題目來自LeetCode。 題目描述: 實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在

原创 進擊的小白Day036——LeetCode刷題筆記014:刪除排序數組中的重複項

題目來自LeetCode。 題目描述: 給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 示

原创 進擊的小白Day036——LeetCode刷題筆記015:移除元素

題目來自LeetCode。 題目描述: 給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件

原创 進擊的小白Day035——知識點:批量輸入字符串,並循環右移(未完待續)

方法一:暴力法 貼代碼: #include <stdio.h> #include <string.h> void RightLoopMove(char *ss, int num) { int i = 0, j = 0; in