原创 Leetcode 141. 環形鏈表 思維

給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。   示例 1: 輸入:head = [3,2,0,-

原创 Leetcode 328. 奇偶鏈表 思維

給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裏的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。 請嘗試使用原地算法完成。你的算法的空間複雜度應爲 O(1),時間複雜度應爲 O(nodes),no

原创 Leetcode 300. 最長上升子序列 DP

給定一個無序的整數數組,找到其中最長上升子序列的長度。 示例: 輸入: [10,9,2,5,3,7,101,18] 輸出: 4 解釋: 最長的上升子序列是  [2,3,7,101], 它的長度是4 說明: 可能會有多種最長上

原创 Leetcode 237. 刪除鏈表中的節點 思維

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。 現有一個鏈表 -- head = [4,5,1,9],它可以表示爲:   示例 1: 輸入: head = [4,5,1,9], node

原创 Leetcode 315. 計算右側小於當前元素的個數 思維

給定一個整數數組 nums,按要求返回一個新數組 counts。數組 counts 有該性質: counts[i] 的值是  nums[i] 右側小於 nums[i] 的元素的數量。 示例: 輸入: [5,2,6,1] 輸出: [2

原创 Leetcode 206. 反轉鏈表 思維

反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 兩種方法,迭代法和遞歸法 迭代法代碼: /** * Definition for singly-linked

原创 int型,char型,void型指針的區別

深信服的面試官問了這個問題,也不說清楚是哪方面的區別,哎,可能涼涼,下面說一下這個東西。 首先,int*和char*是可以++操作的,void*不可以 void*沒有類型,也就不存在sizeof()。 int*和char*可以進行++操作

原创 計算機網絡基礎(六) 應用層

應用層的許多協議都是基於客戶-服務器方式。 注意:客戶與服務器是指通信中所涉及的兩個應用進程 域名系統DNS DNS是因特網使用的命名系統,用來便於把機器名字轉換爲IP地址。 機器處理IP數據報時,使用IP地址而不用域名,是因爲:IP地址

原创 Leetcode 172. 階乘後的零 思維

給定一個整數 n,返回 n! 結果尾數中零的數量。 示例 1: 輸入: 3 輸出: 0 解釋: 3! = 6, 尾數中沒有零。 示例 2: 輸入: 5 輸出: 1 解釋: 5! = 120, 尾數中有 1 個零. 說明: 你算法的時

原创 Leetcode 287. 尋找重複數 思維+二分

給定一個包含 n + 1 個整數的數組 nums,其數字都在 1 到 n 之間(包括 1 和 n),可知至少存在一個重複的整數。假設只有一個重複的整數,找出這個重複的數。 示例 1: 輸入: [1,3,4,2,2] 輸出: 2

原创 Leetcode 150. 逆波蘭表達式求值 棧

根據逆波蘭表示法,求表達式的值。 有效的運算符包括 +, -, *, / 。每個運算對象可以是整數,也可以是另一個逆波蘭表達式。 說明: 整數除法只保留整數部分。 給定逆波蘭表達式總是有效的。換句話說,表達式總會得出有效數值且不存在除數

原创 Leetcode 179. 最大數 思維

給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以

原创 Leetcode 227. 基本計算器 II 棧

實現一個基本的計算器來計算一個簡單的字符串表達式的值。 字符串表達式僅包含非負整數,+, - ,*,/ 四種運算符和空格  。 整數除法僅保留整數部分。 示例 1: 輸入: "3+2*2" 輸出: 7 示例 2: 輸入: " 3/

原创 Leetcode 162. 尋找峯值 二分

峯值元素是指其值大於左右相鄰值的元素。 給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峯值元素並返回其索引。 數組可能包含多個峯值,在這種情況下,返回任何一個峯值所在位置即可。 你可以假設 nums[-1

原创 計算機網絡基礎(五) 運輸層

從通信和信息處理的角度看:運輸層向它上面的應用層提供通信服務,是面向通信的最高層,也是用戶功能的最底層。 運輸層的重要性:從IP層來說,通信的兩端是主機,IP數據報的首部明確標誌了這兩個主機的IP地址。但是真正通信的實體是主機中的進程,嚴