LeetCode

1.兩數(shù)之和

2.兩數(shù)相加
ps:不能直接求總和,再一位一位賦值,因?yàn)榭偤蜁?huì)超過long long的位數(shù)限制

3.無重復(fù)字符的最長(zhǎng)子串
思路:
利用字符的ascii碼作為數(shù)組的索引“鍵值”, index作為值,然后去做判斷

  1. 最長(zhǎng)回文子串
    給定一個(gè)字符串 s,找到 s 中最長(zhǎng)的回文子串。你可以假設(shè) s 的最大長(zhǎng)度為1000。
    思路:區(qū)分最長(zhǎng)回文子串是偶數(shù)或奇數(shù)的兩種情況(奇數(shù)index入?yún)鱥,i。偶數(shù)index入?yún)鱥-1, i)。

7.反轉(zhuǎn)整數(shù)
思路:
1.可用to_string, atoll,atoi函數(shù)的話,就是反轉(zhuǎn)字符串,然后判斷一下別超出區(qū)間。
2.若不可用以上函數(shù),就手動(dòng)用除法算位數(shù),用取余得新值

  1. 字符串轉(zhuǎn)整數(shù) (atoi)
    思路:利用ascii碼確定數(shù)字:str[i]-'0'
  1. 整數(shù)轉(zhuǎn)羅馬數(shù)字

  2. 羅馬數(shù)字轉(zhuǎn)整數(shù)
    做一個(gè)邏輯判斷,如果前一位小于后一位,則+=后一位減前一位的值,下標(biāo)后移兩位,否則直接+=當(dāng)前位的值,下標(biāo)后移一位
    注:類型string取一位出來是char類型,而不再是string類型

14.最長(zhǎng)公共前綴


14.png

注:是公共前綴不是公共子串

  1. 三數(shù)之和
    思路:
    1.利用三個(gè)指針將三數(shù)之和轉(zhuǎn)換為兩數(shù)之和。
    2.需要做的工作是每個(gè)指針移動(dòng)的時(shí)候都要做去重處理

19.刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn)


19.png

思路:多指針同時(shí)移動(dòng)

20.有效的括號(hào)


20.png

思路:利用棧

  1. 合并兩個(gè)有序鏈表


    21.png

    思路:簡(jiǎn)單,不談

23.合并K個(gè)排序鏈表


23.png

思路:實(shí)現(xiàn)兩個(gè)鏈表的合并,然后分治

  1. k個(gè)一組翻轉(zhuǎn)鏈表


    25.png

    思路:遞歸就完事了

  1. 刪除排序數(shù)組中的重復(fù)項(xiàng)(80. 刪除排序數(shù)組中的重復(fù)項(xiàng) II)

  2. 兩數(shù)相除
    給定兩個(gè)整數(shù),被除數(shù) dividend 和除數(shù) divisor。將兩數(shù)相除,要求不使用乘法、除法和 mod 運(yùn)算符。
    返回被除數(shù) dividend 除以除數(shù) divisor 得到的商。
    思路:
    1.位運(yùn)算
    2.然后各種考慮邊界值

33.搜索旋轉(zhuǎn)排序數(shù)組


33.png

思路:
1.找到反轉(zhuǎn)的序號(hào)
2.按照反轉(zhuǎn)的序號(hào),比較第一個(gè)值與target的大小,然后決定對(duì)哪部分進(jìn)行二分查找

  1. 實(shí)現(xiàn) pow(x, n),即計(jì)算 x 的 n 次冪函數(shù)。


    50.png

    思路:
    1.考察的是次數(shù)的移位,n右移一位,則是最終值的一半,利用分制思想遞歸。
    2.考慮邊界值,包括n等于0,1,-1以及最終結(jié)果INFINITY(超出double范圍)的情況。

  1. 跳躍游戲


    image.png

    思路:貪心算法,只關(guān)心眼下是不是最好的選擇

  1. 旋轉(zhuǎn)鏈表


    image.png

    思路:
    1.先寫右移一次的函數(shù)
    2.如果k>n, 先k%=n,然后再遍歷k次1中的函數(shù)

  1. 反轉(zhuǎn)鏈表 II


    92.png

    思路:在反轉(zhuǎn)鏈表1的基礎(chǔ)上,加幾個(gè)條件判斷
    1.ListNode *breakPoint = NULL; //第一次斷開的地方 m!=1 才會(huì)有值,否則為NULL
    2.ListNode *unionPoint = NULL; //要鏈接的地方 n小于總個(gè)數(shù)的時(shí)候才會(huì)有值,否則為NULL
    3.ListNode *unionEnd = NULL; //記錄需要反轉(zhuǎn)的部分的最后一個(gè)節(jié)點(diǎn),即開始翻轉(zhuǎn)時(shí)記錄第一個(gè)

  1. 二叉樹的中序遍歷(144. 二叉樹的前序遍歷, 145. 二叉樹的后序遍歷)
    遞歸就完事了
  1. 從前序與中序遍歷序列構(gòu)造二叉樹(106. 從中序與后序遍歷序列構(gòu)造二叉樹)
    思路:
    遞歸三個(gè)整數(shù)參數(shù)分別為
    1.inFrom:中序遍歷數(shù)組的起始位置
    2.inTo:中序遍歷數(shù)組的結(jié)束位置
    3.preFrom:前序遍歷數(shù)組的起始位置(遍歷右子樹的這個(gè)參數(shù)為:preFrom+index-inFrom+1中的index-inFrom是遍歷完以后對(duì)于preFrom的相對(duì)位移)
    (106: 遍歷左子樹的postFrom這個(gè)參數(shù)postFrom-(inTo-i)-1中的inTo-i是右子樹的長(zhǎng)度)
  1. 二叉樹的最小深度


    111.png
  1. 買賣股票的最佳時(shí)機(jī)


    121.png

    思路:搞一個(gè)變量,記錄最小的元素,每次往下遍歷都用當(dāng)前index的元素減去最小的元素,結(jié)果大于前一次的差值則用,小于則用前一次的差值。

  1. 買賣股票的最佳時(shí)機(jī) II


    122.png

    思路:
    1.start、end標(biāo)記第一個(gè)元素,遍歷后面的,當(dāng)前元素大于start則求差。
    2.start、end指向當(dāng)前元素
    3.考慮邊界值,即當(dāng)遍歷最后一個(gè)元素arr[i]時(shí),判斷最后一個(gè)arr[i]和倒數(shù)第二個(gè)arr[i-1]的大小關(guān)系,如果最后一個(gè)大于倒數(shù)第二個(gè),再一次求start與end的差值。
    4.+=運(yùn)算將所有的差值相加

  1. 驗(yàn)證回文串


    125.png

    思路:要注意兩個(gè)指針的邊界值,隨時(shí)進(jìn)行大小寫轉(zhuǎn)換等等

136.只出現(xiàn)一次的數(shù)字


136.png

思路:用0異或,因?yàn)椋?br> ①.a ^ b = b ^ a

②. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c

  1. 刪除鏈表中的節(jié)點(diǎn)(主要是考慮邊界值:需要?jiǎng)h除的節(jié)點(diǎn)在第一個(gè)和最后一個(gè)時(shí))
    206.反轉(zhuǎn)鏈表
    ps:主要是掌握遞歸反轉(zhuǎn)的思路,迭代反轉(zhuǎn)簡(jiǎn)單。
  1. 第一個(gè)錯(cuò)誤的版本
    思路:跟一般的二分查找相比,條件應(yīng)該是start==end的時(shí)候結(jié)束
  1. 字符串中的第一個(gè)唯一字符
    思路:利用ascii碼

647.回文子串


647.png

思路:中心為一個(gè)開始的子串,中心為兩個(gè)開始的子串

  1. 有效的括號(hào)字符串
    678.png

    思路:
    1.利用棧
    2.是 ')' 時(shí),棧中必須有 '(' 或 ''
    3.剩余棧中必須'('在'
    '左邊,通過序號(hào)判斷,先入棧的序號(hào)小
    4.最后棧中必須沒有 '('
  1. 二叉搜索樹的最小絕對(duì)差(同783)
    783.二叉搜索樹結(jié)點(diǎn)最小距離


    783.png

    思路:
    先中序遞歸把鏈表的值轉(zhuǎn)成一個(gè)有序數(shù)組,然后算所有相鄰的兩個(gè)元素的差值

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

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

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