常用66算法類型及思路.markdown

數(shù)據(jù)結構類題目

LinkedList

003-從尾到頭打印鏈表

014-鏈表中倒數(shù)第k個結點

015-反轉鏈表

```java

/**

? ? 輸入一個鏈表,反轉鏈表后,輸出新鏈表的表頭。

? ? */

? ? public ListNode ReverseList(ListNode head) {

? ? ? ? if(head == null || head.next == null){

? ? ? ? ? ? return head;

? ? ? ? }

? ? ? ? ListNode pre=null;//前一個節(jié)點

? ? ? ? ListNode next = null;//下一個節(jié)點

? ? ? ? while(head !=null){

? ? ? ? ? ? next = head.next;//記錄當前節(jié)點的下一個節(jié)點

? ? ? ? ? ? head.next = pre;//將當前節(jié)點指向前一個節(jié)點,完成當前節(jié)點反轉

? ? ? ? ? ? pre = head;//pre往下一個節(jié)點鄒

? ? ? ? ? ? head = next;//當前節(jié)點往下走

? ? ? ? }

? ? ? ? return pre;

? ? }

```

016-合并兩個或k個有序鏈表

025-復雜鏈表的復制

036-兩個鏈表的第一個公共結點

055-鏈表中環(huán)的入口結點

056-刪除鏈表中重復的結點

Tree

004-重建二叉樹

017-樹的子結構

018-二叉樹的鏡像

022-從上往下打印二叉樹

023-二叉搜索樹的后序遍歷序列

024-二叉樹中和為某一值的路徑

026-二叉搜索樹與雙向鏈表

038-二叉樹的深度

039-平衡二叉樹

057-二叉樹的下一個結點

058-對稱的二叉樹

059-按之字形順序打印二叉樹

060-把二叉樹打印成多行

061-序列化二叉樹

062-二叉搜索樹的第k個結點

Stack & Queue

005-用兩個棧實現(xiàn)隊列

020-包含min函數(shù)的棧

021-棧的壓入、彈出序列

044-翻轉單詞順序列(棧)

064-滑動窗口的最大值(雙端隊列)

Heap

029-最小的K個數(shù)

Hash Table

034-第一個只出現(xiàn)一次的字符

065-矩陣中的路徑(BFS)

066-機器人的運動范圍(DFS)

具體算法類題目

斐波那契數(shù)列

007-斐波拉契數(shù)列

008-跳臺階

009-變態(tài)跳臺階

010-矩形覆蓋

搜索算法

001-二維數(shù)組查找


public boolean Find(int target, int [][] array) {

? ? ? ? if(array == null){

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? int rows = array.length;

? ? ? ? if(rows == 0){

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? int cols = array[0].length;

? ? ? ? if(cols == 0){

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? // 右上

? ? ? ? int row = 0;? //起始行

? ? ? ? int col = cols-1;? ? //最大列

? ? ? ? while(row<rows && col>=0){? ? //注意

? ? ? ? ? ? if(array[row][col] < target){

? ? ? ? ? ? ? ? row++;? ? ? ? //注意

? ? ? ? ? ? }else if(array[row][col] > target){

? ? ? ? ? ? ? ? col--;? ? ? //注意

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return false;

? ? }

006-旋轉數(shù)組的最小數(shù)字(二分查找)

037-數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)(二分查找)

全排列

027-字符串的排列

動態(tài)規(guī)劃

030-連續(xù)子數(shù)組的最大和

052-正則表達式匹配(我用的暴力)

回溯

065-矩陣中的路徑(BFS)

066-機器人的運動范圍(DFS)

排序

035-數(shù)組中的逆序對(歸并排序)

029-最小的K個數(shù)(堆排序)

029-最小的K個數(shù)(快速排序)

位運算

011-二進制中1的個數(shù)

012-數(shù)值的整數(shù)次方

040-數(shù)組中只出現(xiàn)一次的數(shù)字

其他算法

002-替換空格

013-調整數(shù)組順序使奇數(shù)位于偶數(shù)前面

028-數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字

031-整數(shù)中1出現(xiàn)的次數(shù)(從1到n整數(shù)中1出現(xiàn)的次數(shù))

032-把數(shù)組排成最小的數(shù)

033-丑數(shù)

041-和為S的連續(xù)正數(shù)序列(滑動窗口思想)

042-和為S的兩個數(shù)字(雙指針思想)

043-左旋轉字符串(矩陣翻轉)

046-孩子們的游戲-圓圈中最后剩下的數(shù)(約瑟夫環(huán))

051-構建乘積數(shù)組

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉變要...
    余生動聽閱讀 10,857評論 0 11
  • 彩排完,天已黑
    劉凱書法閱讀 4,479評論 1 3
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息。高興了當然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,665評論 2 7

友情鏈接更多精彩內(nèi)容