二、原始碼分析
2、priority deque原始碼
三、改寫deque
精華:
知識點:
陣列,鍊錶、棧、佇列、堆排
leetcode:
鏈結(歡迎指正錯誤): 01/id_693
補充:1、刷題五步法:
第二步:關閉答案,自己寫程式,直到測試通過
第三步:第二天對前一天的程式進行重新寫
第四步:一周後對程式進行重新寫
第五步:面試準備前半周或者一周,對題目進行重新寫
2、切題四件套:
寫程式寫測試樣例進行測試
1、queue原始碼
繼承關係
函式說明
add
(e e)
:boolean
//新增元素
//如果沒有佇列空間已滿,丟擲異常
offer
(e e)
:boolean
//新增元素
//如果沒有佇列空間已滿,進行擴容新增
remove()
:e //壓出棧頂元素
//如果隊列為null,丟擲異常
poll()
:e //壓出棧頂元素
//如果隊列為null,返回null
element()
:e //檢索棧頂元素
//如果隊列為null,丟擲異常
peek()
:e //檢索棧頂元素
//如果隊列為null,返回null
2、priority deque原始碼
繼承關係
屬性說明
//預設初始化大小
private
static
final intdefault_initial_capacity =
11;//用陣列實現的二叉堆
private
transient object[
] queue ;
//佇列的元素數量
private
int size =0;
//比較器
private
final comparaotr<
?super e> comparator;
//修改版本
private
transient
int modcount =
0;
常用函式
1、offer 新增元素
public
boolean
offer
(e e)
//上浮
private
void
siftup
(int k, e x)
private
void
siftupcomparable
(int k, e x)
queue[k]
= key;
}
2、remove 刪除元素
public
boolean
remove
(object o)
}private e removeat
(int i)
}return null;
}
linkedlistdeque
deque =
newlinkedlist()
;"a")
"b")
"c")
deque.
addfirst
("a");
deque.
addfirst
("b");
deque.
addfirst
("c");
system.out.
println
(deque)
;//string str = deque.peek();
string str = deque.
peekfirst()
;system.out.
println
(str)
;system.out.
println
(deque)
;while
(deque.
size()
>0)
system.out.
println
(deque)
;
ARTS 第一周 演算法 翻轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 變數在 左邊時為引用,在 右邊時為引用指向的記憶體位址。輸入 1 2 3 4 5 null 輸出 null class solution return prev 2 試圖當視窗移動到null時成立並退出迴圈...
第一周 1 2佇列
實現乙個佇列,完成以下功能 入列出列 詢問佇列中位置y是誰 一開始隊列為空。佇列中的位置從1開始 即隊頭位置為1 第一行乙個整數n,表示操作個數。接下來n行,每行第乙個數字表示操作 見描述 將所有操作2和操作3輸出,一行乙個。11 1 a1 b 1 c3 1 3 23 3 21 d 3 13 2 3...
資料自習室 第一周 資料的描述性統計
眾數 出現次數最多的數。中位數 按順序排序,處於中間位置的數。平均數 一般指的是 算術平均數。極差 最大值與最小值之間的差距。分位數 亦稱分位點,是指將乙個隨機變數的概率分布範圍分為幾個等份的數值點,常用的有中位數 即二分位數 四分位數 百分位數等。1.二分位數 對於有限的數集,可以通過把所有觀察值...