原创 LeetCode_240. Search a 2D Matrix II

題目描述: 思路:題目要求寫一個高效率的算法,所以暴力遍歷整個矩陣查找targettargettarget的方法行不通了。 分析題目,發現這個矩陣是從左到右,從上到下遞增的。可以發現矩陣右上角的元素是一個特殊的元素(candid

原创 LeetCode_138. Copy List with Random Pointer

題目描述: 思路:設置一個map,用來存放舊鏈表節點和新鏈表節點,(key,value)->(舊鏈表節點,新鏈表節點) 注意:這道題不要被他給的樣例所迷惑,對應的下標random_index根本沒用,就按照正常思路求解即可 /*

原创 劍指offer——構建乘積數組

題目描述: 給定一個數組A[0,1,...,n−1]A[0,1,...,n-1]A[0,1,...,n−1],請構建一個數組B[0,1,...,n−1]B[0,1,...,n-1]B[0,1,...,n−1],其中B中的元素B[i

原创 劍指offer——兩個鏈表的第一個公共節點

題目描述: 輸入兩個鏈表,找出它們第一個公共節點 思路:遍歷其中一個鏈表,將鏈表的所有節點都加入到vector中,然後遍歷第二個鏈表,並且遍歷一個查找一下vector看看是否已經存在,如果存在,則是第一個公共節點,直接返回即可,否

原创 劍指offer——和爲S的兩個數字

題目描述: 輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。 輸出描述: 對應每個測試案例,輸出兩個數,小的先輸出。 思路:遍歷數組,先找到第一個數d

原创 劍指offer——反轉單詞順序列

題目描述: 牛客最近來了一個新員工Fish,每天早晨總是會拿着一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意

原创 LeetCode_155. Min Stack

題目描述: 思路:設置兩個stackstackstack,datadatadata和min_datamin\_datamin_data,分別用於存放加入stack中的數據和stack中最小的數據。 class MinStack

原创 LeetCode_337. House Robber III

題目描述: 思路1:暴力求解。當前節點能偷到的最大錢數有兩種可能的計算方式。1.爺爺節點和孫子節點偷的錢的總和 2.兒子節點偷的錢的總和。則當前節點能偷到的最大錢數只要取一個max即可。 /** * Definition fo

原创 劍指offer——第一個只出現一次的字符

題目描述: 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 思路:建立一個哈希表,遍歷一下,統計各個字符出現的次數,然後在從頭

原创 LeetCode_287. Find the Duplicate Number

題目描述: 思路:根據題目描述,n+1個空間只有範圍爲1~n的整數,所以必定存在重複數值,題目說有且僅有一個重複數值,所以,必定存在環。這裏可以設置快慢指針。 慢指針: t=nums[0]=1 t=nums[1]=3 t=num

原创 劍指offer——和爲S的連續正數序列

題目描述: 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和爲100(至少包括兩個數)。沒多久,他就得到另一組連續正數和爲10

原创 劍指offer——數組中重複的數字

題目描述: 在一個長度爲n的數組裏的所有數字都在0到n-1的範圍內。 數組中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 例如,如果輸入長度爲7的數組{2,3,1,0,2

原创 劍指offer——滑動窗口的最大值

題目描述: 給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4,4,6,6,6,5}; 針對數組{

原创 LeetCode_581. Shortest Unsorted Continuous Subarray

題目描述: 思路:將數組排序,然後採用雙指針法從前到後比較排序後數組和元素組對應元素是否相同,不同則找到始末位置。返回長度 class Solution { public: int findUnsortedSubarra

原创 劍指offer——二叉搜索樹的第k個節點

題目描述: 給定一棵二叉搜索樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值爲4。 思路:按照中序遍歷,遍歷二叉搜索樹,並將遍歷的結果保存在visit中,然後找到vi