LeetCode 每日 1 題 打卡刷題計畫

2021-10-03 19:08:06 字數 2736 閱讀 1370

活動頁面

佇列:隊首出,隊尾進;先進先出

queue 的基本操作有:

q.

push

(x);

// 隊尾

d.push_back

(x);

// 隊尾

d.push_front

(x);

// 隊首

q.

pop();

d.pop_back()

;d.pop_front()

;

struct listnode 

};

vector操作push_back:在陣列的最後新增乙個資料

pop_back:去掉陣列的最後乙個資料

at:得到編號位置的資料

begin:得到陣列頭的指標

end:得到陣列的最後乙個單元+1的指標

front:得到陣列頭的引用

back:得到陣列的最後乙個單元的引用

max_size:得到vector最大可以是多大

capacity:當前vector分配的大小

size:當前使用資料的大小

resize:改變當前使用資料的大小,如果它比當前使用的大,者填充預設值

reserve:改變當前vector所分配空間的大小

erase:刪除指標指向的資料項

clear:清空當前的vector

rbegin:將vector反轉後的開始指標返回(其實就是原來的end-1)

rend:將vector反轉構的結束指標返回(其實就是原來的begin-1)

empty:判斷vector是否為空

swap:與另乙個vector交換資料

#include

std::vector<

int> obj;

for(

int i =

0; i <

5; i++

) obj.

push_back

(i);

for(

int i =

0; i < obj.

size()

; i++

)printf

("%d "

, obj[i]);

std::vector<:vector>

int>>

obj(m, std::vector<

int>

(n))

;// m行n列0矩陣

pair<

int,

int> obj =

make_pair(1

,2);

printf

("%d"

, obj.first)

;// 1

printf

("%d"

, obj.second)

;// 2

// definition for a binary tree node.

struct treenode

};

遞迴遍歷二叉樹摩爾投票法:當乙個數的重複次數超過陣列的一半,每次將兩個不同的數刪除,最終剩下的就是要找的數。

演算法步驟:

count=0;nums=nums[0];表示從此時開始計算投票。

遍歷陣列,如果接下來出現的數字與num相同,count加1.如果不同,count減1.

如果count==0,表示之前出現的所有數字中num都可以湊成不同的數對,一起抵消。大於1/2n的數還會在後面出現。

如果count<0,表示之前num中的數字沒有到一半,所以此時完全不用考慮前面儲存的元素,「刪除」他們。直接從現在的新的元素開始計數,並令count=0.

動態規劃**過程

c++中的string類

typedef

struct node node;

typedef

struct nodes nodes;

LeetCode刷題打卡(3)

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。首先,可以排除負數。負數一定不是回文數。拿到這一題,我感覺思路和整數翻轉那道題差不多,通過比較翻轉後的數與原來的數是否相等,可以判斷該數是否為回文數。因為要考慮int溢位的問題,且已經排除了負數,我把翻轉後的數定...

LeetCode刷題打卡(4)

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。輸入 pwwkew 輸出 3 解釋 因為無重複字元的最長子串是 wke 所以其長度為 3。請注意,你的答案必須是 子串 的長度,pwke 是乙個子串行,不是子串。要查詢無重複字元的最長子串,至少要從左往右掃瞄一遍。為了確定字串有無重複及重複的...

leetcode刷題打卡 53

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。此題為簡單題。首先考慮何時連續子陣列的的和最大,當連續子陣列的第一位和最後一位是負數時,很顯然可...