原创 面試題53 - II. 0~n-1中缺失的數字(二分變種)

一個長度爲n-1的遞增排序數組中的所有數字都是唯一的,並且每個數字都在範圍0~n-1之內。在範圍0~n-1內的n個數字中有且只有一個數字不在該數組中,請找出這個數字。 示例 2: 輸入: [0,1,2,3,4,5,6,7,9] 輸

原创 插入排序及python實現

假設數列第一個元素爲已排序數列,剩餘數列爲未排序將待排序元素挨個插入到已排序數列中每次插入都必須保證數列是有序的,即通過比較和移動有序數列中的元素,將元素插入到合適的位置。 插入排序維持一個已排好序的子列表,其位置始終在列表的前部

原创 面試題53 - I. 在排序數組中查找數字 I(二分查找上下界問題)

統計一個數字在排序數組中出現的次數。 思路:二分查找 具體思考過程見註釋 def search_left_right(alist, target): i, j = 0, len(alist) - 1 # 查找右邊界

原创 面試題56 - II. 數組中數字出現的次數 II(位操作!!!!)

在一個數組 nums 中除一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 hashmap class Solution: def singleNumber(self, nums: List[in

原创 面試題60. n個骰子的點數(動態規劃)

把n個骰子扔在地上,所有骰子朝上一面的點數之和爲s。輸入n,打印出s的所有可能的值出現的概率。 你需要用一個浮點數數組返回答案,其中第 i 個元素代表這 n 個骰子所能擲出的點數集合中第 i 小的那個的概率。 輸入: 2 輸出:

原创 面試題56 - I. 數組中數字出現的次數(位操作的精妙不太懂)

一個整型數組 nums 裏除兩個數字之外,其他數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1)。 hashmap(字典實現) 此解法空間複雜度爲O(n) class Soluti

原创 1049. 最後一塊石頭的重量 II(01揹包問題變種-動態規劃)

有一堆石頭,每塊石頭的重量都是正整數。 每一回合,從中選出任意兩塊石頭,然後將它們一起粉碎。假設石頭的重量分別爲 x 和 y,且 x <= y。那麼粉碎的可能結果如下: 如果 x == y,那麼兩塊石頭都會被完全粉碎; 如果 x

原创 計算機網絡知識點-第五章:運輸層

0.本章思維導圖: 1.運輸層協議概述         1.進程間的通信        概述:             運輸層向它上面的應用層提供通信服務運輸層屬於面向通信部分的最高層,同時也是用戶功能中的最底層;只有位於網絡

原创 計算機網絡知識點-第六章:應用層

0.本章思維導圖:     應用層協議:每個應用層協議都是爲了解決一類應用問題,而解決問題需要通過位於不同主機的多個應用進程之間的通信和協同來完成,應用層的具體內容就是定義這些通信規則 1.域名系統DNS         1.

原创 計算機網絡-第三章:數據鏈路層

0.本章思維導圖: 數據鏈路層使用的信道:     點對點信道:使用一對一的點對點通信方式     廣播信道:使用一對多的廣播通信方式,過程比較複雜,需要專用的協議來協調   1.使用點對點信道的數據鏈路層      1.1數

原创 計算機網絡-第四章:網絡層

0.本章思維導圖: 1.網絡層提供的兩種服務    *網絡層提供服務的特點:網絡層向上只提供簡單的、無連接的、盡最大努力交付的數據報服務,不保證可靠通信     虛電路服務:保證可靠通信,必須建立連接         思路:可

原创 java 第二部分

java 三目運算符 三目運算符 (表達式1)?(表達式2):(表達式3),計算方法是這樣的:表達式1是一個邏輯表達式,如果其值爲true,則整個表達式的值爲表達式2的值,否則爲表達式3的值。 在一個表達式中可能包含多個有不同運

原创 面試題35. 複雜鏈表的複製

給定一個鏈表,每個節點包含一個額外增加的隨機指針,該指針可以指向鏈表中的任何節點或空節點。 要求返回這個鏈表的 深拷貝。 我們用一個由 n 個節點組成的鏈表來表示輸入/輸出中的鏈表。每個節點用一個 [val, random_ind

原创 面試題30. 包含min函數的棧

定義棧的數據結構,請在該類型中實現一個能夠得到棧的最小元素的 min 函數在該棧中,調用 min、push 及 pop 的時間複雜度都是 O(1)。 示例: MinStack minStack = new MinStack();

原创 面試題58 - II. 左旋轉字符串

字符串的左旋轉操作是把字符串前面的若干個字符轉移到字符串的尾部。請定義一個函數實現字符串左旋轉操作的功能。比如,輸入字符串"abcdefg"和數字2,該函數將返回左旋轉兩位得到的結果"cdefgab"。 思路1 沒啥可說的 在對於