原创 leetcode題解-20. Valid Parentheses

題意:給出一個只包含 ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ 和 ‘]’ 的字符串,判斷它的輸入是否是有效的。 例子:括號必須是以正確的順序關閉的, “()” 和 “()[]{}” 都是有效的,但是 “(]” 和 “([)

原创 leetcode題解-138. Copy List with Random Pointer

題意:深拷貝一個鏈表,鏈表除了含有next指針外,還包含一個random指針,該指針指向字符串中的某個節點或者爲空。 節點定義爲: // Definition for singly-linked list. public cla

原创 leetcode題解-146. LRU Cache

題意:本題的題目較難讀懂,不過這能考察一個面試者能否短時間內,理解一段未見過的內容的能力。在題目的wiki鏈接裏提供了這樣一張圖: 緩存的長度(capacity )爲4,A、B、C、D首先插入緩存中;插入E時,超過了capac

原创 leetcode題解-84.Largest Rectangle in Histogram

題解:給出的n個非負整數表示每個直方圖的高度,每個直方圖的寬均爲1,在直方圖中找到最大的矩形面積。 例子:給定數組: height = [2,1,5,6,2,3],返回 10 (5 * 2) 分析:總體來說首先很自然會想到暴力

原创 leetcode題解-24. Swap Nodes in Pairs

題意:給定一個鏈表,交換相鄰的兩個結點,返回交換之後的頭結點。 例子:給定鏈表 1->2->3->4, 返回鏈表 2->1->4->3. 分析:關鍵在於分析循環的結束條件。以例子來說明: 設置三個指針pre,leftNode,s

原创 leetcode題解-3、Longest Substring Without Repeating Characters

題意:給定一個字符串,求最長不重複子串(非子序列)。 例子: Input: “abcabcbb” Output: 3 分析: “abc”, 它的長度爲 3. Input: “bbbbb” Output: 1 分析: “b”,

原创 leetcode題解-6. ZigZag Conversion

題意:將字符串按照鋸齒形排列,然後把從上到下把所有行順序輸出,組成新的字符串。 例子: Input: s = “PAYPALISHIRING”, numRows = 3 Output: “PAHNAPLSIIGYIR”

原创 leetcode題解-86. Partition List

題意:給定一個單鏈表和一個x,把鏈表中小於x的放到前面,大於等於x的放到後面,每部分元素的原始相對位置不變。 例子: 給定鏈表 1->4->3->2->5->2 並且x = 3, 返回鏈表 1->2->2->4->3->5.

原创 leetcode題解-61. Rotate List

題意:給出一個列表,往右旋轉 k 個位置。 例子:給定鏈表 1->2->3->4->5->NULL 並且 k = 2, 返回鏈表 4->5->1->2->3->NULL. 分析:題目比較簡單,分爲三個部分來做。 1、計數,得到

原创 leetcode題解-88. Merge Sorted Array

題解:給定兩個排序的整型數組nums1和nums2,將nums2合併到nums1成一個排序數組。你可以假設nums1中有足夠的空間(空間大於或等於m+n)來存放來自nums2的額外元素。nums1和nums2的初始空間分別是m和n

原创 leetcode題解-25. Reverse Nodes in k-Group

題意:把原始鏈表k個k個的反轉,如果最後剩餘的不到k個結點,那麼保持不變。 例子: 給定鏈表: 1->2->3->4->5 如果 k = 2, 返回鏈表: 2->1->4->3->5 如果 k = 3, 返回鏈表: 3->2

原创 leetcode題解-143. Reorder List

題意:給定一個鏈表,把最後一個結點插入到第1個結點後,倒數第二個結點插入到第2個結點後,倒數第三個結點插入到第3個結點後,以此類推……注意:需要在原數組上進行操作,同時不能改變鏈表的value。 例子: 給定鏈表: L0→L1→

原创 leetcode題解-83. Remove Duplicates from Sorted List

題意:給定一個單向已排序的鏈表,刪除鏈表中重複的元素使每個元素只出現一次。 例子: 1->1->1->2,返回1->2 1->1->2->3->3->,返回1->2->3 思路:兩個指針 ,分別從頭開始,如果下一指針指向

原创 leetcode題解-19. Remove Nth Node From End of List

題意:給一個鏈表和數字n,移除倒數第n個數,返回head。 例子: 給定鏈表 1->2->3->4->5, 並且n = 2. 返回鏈表 1->2->3->5. 分析:題目比較簡單,就是數據結構中鏈表的常規刪除操作而已。需要注意

原创 leetcode題解-82. Remove Duplicates from Sorted List II

題意:本題是83題(Remove Duplicates from Sorted List)的拓展,這次重複的元素一個都不保留。 例子: 給定鏈表 1->2->3->3->4->4->5, 返回鏈表 1->2->5. 給定鏈表