Day1刷題總結

2021-08-28 18:56:23 字數 2674 閱讀 6699

如果進棧序列為e1,e2,e3,e4,則不可能的出棧序列是:(d)

a.e2,e4,e3,e1

b.e4,e3, e2, e1

c.e1,e2,e3,e4

d.e3,e1, e4, e2

解析

對於a,進棧的順序是先把e1,e2進棧,再把e2出棧,再將e3,e4進棧,這時棧按順序剩下e1,e3,e4,出棧的順序就是e4,e3,e1

對於b,進棧的順序就是e1,e2,e3,e4,出棧的順序就是e4,e3,e2,e1

對於c,進行的操作是將每乙個元素進棧之後馬上彈出。

對於d,不可能是e3,e1,因為沒出現e2,所以錯誤

鍊錶不具備的特點是( a)

a.可隨機訪問任何乙個元素

b.插入、刪除操作不需要移動元素

c.無需事先估計儲存空間大小

d.所需儲存空間與線性表長度成正比

解析

線性表不能隨機訪問,每次訪問的時間複雜度都是o(n),因為線性表是沒有索引的

下列敘述中正確的是?(a)

a.線性表是線性結構

b.棧與佇列是非線性結構

c.線性鍊錶是非線性結構

d.二叉樹是線性結構

解析:線性表是邏輯上的線性結構,儲存上可以線性,可以鏈式

棧與佇列都是線性結構

二叉樹是非線性結構

對矩陣壓縮儲存是為了(d)

a.方便運算

b.方便儲存

c.提高運算速度

d.減少儲存空間

解析:a c,都是運算方面的好處

b,如果鄰接表,還要存指標,並沒有方便儲存

d,不管是,鄰接矩陣還是鄰接表,都節省了空間

鍊錶是採用鏈式儲存結構的線性表,進行插入、刪除操作時,在鍊錶中比在順序表中效率高,這樣的說法正確嗎?(a)

a.正確

b.不正確

解析:鍊錶在插入刪除時不需要移動元素,只改變指向元素的鏈就好,一般在刪除時只需要把next指向next的next節點,則節點刪除。

假定乙個二維陣列的定義語句為「int a[3][4]=,};」,則元素a[1][2]的值為( c )。

a.2b.4

c.6d.8

解析:定義中每個,表示一行的資料,每行資料不夠的補0,每一行的編號從0開始

** 0 1 2 3**

03 4 0 0

12 8 6 0

20 0 0 0

以下那種結構,平均來講獲取任意乙個指定值最快?(d)

a.二叉排列數

b.佇列

c.棧d.雜湊表

解析:二叉排序樹中,查詢的平均時間複雜度是o(logn);

對於棧和佇列來說,查詢就意味著把元素挨個出棧或者出隊,故平均時間複雜度是o(n);

而雜湊表,直接通過關鍵碼查詢元素,平均為o(1);

故雜湊表速度是最快的

鏈結線性表是順序訪問的線性表 。 (a )

a.正確

b.錯誤

解析:鏈結線性表就是鍊錶。

線性表的順序儲存結構和線性表的鏈式儲存結構分別是隨機訪問和順序訪問。順序儲存結構的位址在記憶體中是連續的,所以可以通過計算位址實現隨機訪問,而鏈式儲存結構的儲存位址不一定連續,只能通過第1個結點的指標順序訪問。

將n條長度均為m的有序鍊錶進行合併,合併以後的鍊錶也保持有序,時間複雜度為(a)?

a.o(n * m * logn)

b.o(n*m)

c.o(n)

d.o(m)

解析:①在每乙個鍊錶中取出第乙個值,然後把它們放在乙個大小為n的陣列裡,然後把這個陣列當成heap建成小(大)根堆。此步驟的時間複雜度為o(n)

②取出堆中的最小值(也是陣列的第乙個值), 然後把該最小值所處的鍊錶的下乙個值放在陣列的第乙個位置。如果鍊錶中有乙個已經為空(元素已經都被取出),則改變heap的大小。此步驟的時間複雜度為o(lg n).

③不斷的重複步驟二,直到所有的鍊錶都為空。

建堆只建一次,複雜度為o(n);調整堆mn-1次,複雜度為(mn-1)o(lg n)。所以為o(mnlg n)

10.以下關於棧的說法錯誤的是:(bcd)

a.在棧空的情況下,一定不能作出棧操作,否則產生溢位。

b.棧一定是順序儲存的線性結構。

c.空棧是所有元素都為0的棧。

d.乙個棧的輸入序列為:a,b,c,d,可以得到輸出序列:c,a,b,d。

解析:首先題目是要求選描述錯誤的。

a:棧空的情況下出棧屬於下溢位;a正確。

b:棧可以順序儲存,也可以是鏈式儲存的線性結構;b錯誤。

c:元素為0和無元素是兩個不同的概念,當有n個元素為0的棧,擁有n個元素;c錯誤。

d:輸出c時,並定有abc進棧,然後c出棧。接下來有兩種輸出結果,一是b出棧,即輸出c的後面輸出b;而是d進棧後立即出棧,即輸出c的後面輸出d。所以c的後面要麼是b要麼是d,不可能輸出a;d錯誤。

相對位置不變--->保持穩定性;奇數字於前面,偶數字於後面 --->存在判斷,挪動元素位置;

這些都和內部排序演算法相似,考慮到具有穩定性的排序演算法不多,例如插入排序,歸併排序等;這裡採用插入排序的思想實現。

public class solution

k++;}}

}}

刷題要緊 DAY 1

leetcode day 1 題目 給你乙個字串 s 請你返回滿足以下條件的最長子字串的長度 每個母音字母,即 a e i o u 在子字串中都恰好出現了偶數次。示例 1 輸入 s eleetminicoworoep 輸出 13 解釋 最長子字串是 leetminicowor 它包含 e,i,o 各...

leetcode刷題之旅(day1)

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...

藍橋杯刷題 Day1

1.2020省賽 單詞分析 暴力 輸入一行包含乙個單詞,單詞只由小寫英文本母組成。對於所有的評測用例,輸入的單詞長度不超過 1000。輸出兩行,第一行包含乙個英文本母,表示單詞 現得最多的字母是哪 個。如果有多個字母出現的次數相等,輸出字典序最小的那個。第二行包含乙個整數,表示出現得最多的那個字母在...