原创 LeetCode 15 三數之和 / threeSum

題目描述:此題如果純暴力的話應該是會超時的(沒試過)考慮在暴力的基礎上優化一下,先對數組排序,然後枚舉第一個數 i,那麼剩下兩個數之和爲 j + k = 0 - i,然後設立兩個指針j和k指向頭和尾,對剩下的數組從兩頭到中間搜索答案,時間

原创 leetcode 5 最長迴文子串 / longest palindromic substring

題目描述:此題算是一個比較經典的問題了,做法有很多,比如暴力 動態規劃 manacher算法,這裏採用著名的manacher算法,算法時間複雜度爲o(n),算法思想感覺和kmp有相似之處,此鏈接有詳細介紹:點擊打開鏈接其中,要注意幾個重要

原创 leetcode 6 Z字形變化/zigzag

題目描述:剛開始看到題目半天沒看懂什麼意思,後來查了查才理解題意,就是叫你把字符串按照圖中從上到下從左到右(z字形)擺放,然後再按行讀出來擺放後的字符串是什麼。解題思路:觀察到Z字形排列的第一行爲等差數列,考慮從第一行入手,第二行的座標分

原创 LeetCode 495 提莫攻擊/teemo attacking

題目描述:這道題本來挺簡單的,直接模擬就可以,先看別人的代碼:class Solution { public: int findPoisonedDuration(vector<int>& timeSeries, int durat

原创 麻將胡牌算法

前幾天面試被叫做的一個東西,順便也記錄在這裏。判斷當前的牌是否 能胡牌,沒考慮特殊情形,思路就是先枚舉對子,然後在搜索n*順子 + m * 刻子形式,搜索成功則能胡。代碼如下:<!DOCTYPE html> <html> <head>

原创 leetcode 100 相同的樹

最近在刷leetcode ,順便記錄下來,就當筆記啦。題目描述:思路:先序遍歷,先對當前節點值進行判斷,然後在遞歸判斷左右子樹。代碼如下:/** * Definition for a binary tree node. * struc

原创 LeetCode 101 對稱二叉樹 / symmetric tree

題目描述:解題思路:此題和上題有點類似,同樣遞歸解決,isSymmetry(TreeNode * p,TreeNode * q) 表示如果以p的  以右孩子爲根的子樹  和  q的  以左孩子爲根的子樹對稱並且 p的  以左孩子爲根的子樹

原创 leetcode 最接近的三數之和 / 3Sum closest

題目描述:    這道題和前面一道題 三數之和:https://blog.csdn.net/twt727/article/details/80003382  類似,思路也差不多,都是頭和尾設置兩個指針從兩頭往中間掃,不同之處在於需要設置一

原创 leetcode 84 柱狀圖中最大矩形 / Largest Rectangle in Histogram

題目描述:    自己想了想發現只有暴力做,但這題明顯是有簡便算法的,網上看了看主流的解法是用單調(遞增)棧做,算法大概思想是:維護一個單調遞增序列,當前元素大於棧頂元素時則進棧,當前元素小於棧定元素時則處理完前面元素能得到的最大值後在進

原创 leetcode pow(x,n)

題目描述:    題目要求x的n次方,這題寫個簡單的for循環是肯定會超時的,看了大家做的基本都是遞歸的方法,這裏介紹一種迭代的方法供參考,代碼如下:class Solution { public:

原创 leetcode 36 有效的數獨 / valid sudoku

題目描述:題目還是比較簡單的,沒讓你判斷當前數獨是否有解,只判斷當前填的數是否符合規定就行。解題思路:設置三個訪問數組,分別代表行,列和塊(3*3),初始時值全部置0,對於每個元素,第一次訪問後就置1,在訪問就說明數據重複了,直接 ret

原创 LeetCode 搜索二維矩陣 / search a 2D matrix

題目描述:    解題思路:題目要求儘可能快,自然想到雙重二分,難點是邊界判斷要搞清楚,建議寫之前大腦先模擬一下,頭尾兩個指針(start 和 end) 越考越近的時候會發生什麼。這時候會出現兩種情況 (1):start 和 end 重合

原创 leetcode 39 組合求和 / combination sum

題目描述:解題思路:遞歸搜索,找到 = target 的組合存下來即可,代碼如下:class Solution { public: vector<vector<int>> combinationSum(vector<int>& ca

原创 leecode 61 旋轉鏈表 / rotate list

題目描述:    水題,和以前做過一道刪除倒數第n個節點類似,點擊打開鏈接,這題思路和做法也差不多,要找到旋轉後新的頭結點,具體代碼如下:/** * Definition for singly-linked list. * struc

原创 LeetCode 4 兩個排序數組的中位數 / Median of Two Sorted Arrays

題目描述:  這題還是有點難度的,想了比較久,最開始的時候沒看見複雜度要求,心想不就是把兩個數組合並起來就可以了麼,爲什麼tag是困難,結果看見複雜度要求,才知道要二分做,一開始二分又想錯了方向,嘗試建立兩個數組各自的中位數的聯繫,結果寫