資料結構與演算法筆記(十四)定位問題

2021-10-23 19:23:56 字數 705 閱讀 3960

尋找陣列出現次數最多的問題

方法一:

最暴力的方法,雙迴圈

第一層遍歷所有元素

第二層計算每個元素的出現次數,比較當前元素出現次數和最大出現次數的大小

時間複雜度為o(n²)

方法二:

最低時間複雜度o(n),至少需要遍歷一次全部元素

使用雜湊表,key為元素,value為出現次數

迴圈一次原陣列建立雜湊表,查詢雜湊表,value最大的最為多出現次數,儲存這個的key

給乙個整數陣列arr和乙個目標值target,找出陣列中相加等於目標值的兩個數,返回他們的下標

假設陣列中沒有重複數字,只有一組答案

暴力方法:雙迴圈,時間複雜度o(n²)

複雜度最低是o(n),陣列是並非有序的,採用二分法的方式可能性低。

方法:雜湊表,key對應陣列元素,value對應index,查詢時間複雜度為o(1)

for迴圈遍歷陣列生成雜湊表,然後在雜湊表中找出索引。也是兩個迴圈

也可以使用乙個迴圈

public class solution 

m.put(nums[i], i);

}system.out.println(""+res[0]+"\n"+res[1])

return res;

}}

資料結構與演算法(二十四)

給定乙個陣列和滑動視窗的大小,請找出所有滑動視窗裡的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,它們的最大值分別為 1 乙個滑動視窗可以看成乙個佇列。當視窗滑動時,處於視窗的第乙個數字被刪除,同時在視窗的末尾新增乙個新的數字。這符合佇列 先進先出 特性。2 題意 陣列中的...

資料結構與演算法 筆記 資料結構與演算法筆記 棧

以前學習的時候都沒怎麼好好的做過筆記,總是東記一點,西寫一點,甚至都不做筆記,導致後面找的時候找不到,最後還是求助搜尋引擎浪費掉很多時間。好腦筋不如個爛筆頭呀。這次又重新學習python的資料結構及演算法 中國mooc上的公開課 就好好做個筆記吧。棧是一種只能在一端進行插入和刪除的線性資料結構。一般...

資料結構與演算法筆記

main.c檔案 主函式檔案 include seqlist.h 包含的標頭檔案 include main.h void menu intmain break case2 printf 輸入要插入的元素 while scanf s d item item 1 break case3 printf d...