原创 [劍指offer] 二叉搜索樹和雙向鏈表的轉化

題目:二叉搜索樹和雙向鏈表的轉化 二叉搜索樹裏面每個節點有兩個指針,分別指向left 和 right。 雙向鏈表內的每個節點也有兩個指針,分別指向left 和 right。 所以,兩者是可以相互轉化的。 我們知道二叉搜索樹的中序

原创 [leetcode] LargestRectangleHistogram MaximalRectangle

LargestRectangleHistogram 問題描述:給定一個直方圖,假設每個bar的width爲1,高度不定。計算直方圖中所能構成最大矩陣的面積。比如下圖中的直方圖,所能構成的最大面積就是10. - 分析:假設直方圖的

原创 [leetcode] BinaryTreeMaximumPathSum

Binary Tree Maximum Path Sum 題意:從二叉樹的任意一個起點出發,到另一個點所經過的路徑和最大。注意,這裏的路徑就包含了一個點最多隻能經過一次。 分析:我們最大路徑一定是要路過某些點的(不支持路徑長度爲

原创 [leetcode] PerfectSquares

PerfectSquares 問題描述:首先定義完美數字是{1, 4, 9, 16 … , n^2}.然後給定一個整數N,試計算N最少由幾個完美數字求和得到。比如12=4+4+4,13=4+9 分析: 對於一個數字N,它所能選

原创 [leetcode] Path Sum III

Path Sum III 問題描述:給定一顆二叉樹,計算有多少條路徑的sum等於一個target。路徑的定義爲從起點和終點之間依次都滿足是後者是前者的孩子。如下圖所示: 問題分析: 針對每個節點,我們可以記錄從跟節點到該節點

原创 [leetcode] Target Sum

Target Sum 問題描述:給定一個數組A(元素爲非負),你需要在A中每個數字前面加上+或-。然後讓其和爲S。 問題分析: 假設A中所有元素的和TS,則所能生成的所有sum的區間應該[-TS, TS]。對於第i個數,我們將計

原创 [leetcode] Longest Increasing Subsequence

Longest Increasing Subsequence 問題描述:計算一個數組的最長上升子序列。這個子序列內的元素不一定要是相鄰的。比如說數組{1, 100, 2, 3, 4}的LIS就爲{1, 2, 3, 4} 解法1-

原创 [leetcode] LowestCommonAncestor

LowestCommonAncestor 問題描述:給定一顆二叉樹,和二叉樹的兩個節點,計算出這兩個節點的最低公公祖先。 解法1: 最低公公祖先可能出現的最高值就是根節點。 我們找到從根節點到兩個節點的路徑,path1和pat

原创 [leetcode] Maximal Square

Maximal Square 問題描述:在一個給定的矩陣中,找到一個最大的方陣。矩陣中的元素都是0或者1.方陣內的元素要求都是1. 動態規劃:dp[i][j]代表以ij結束的點所能構成的最大方陣的邊長。 轉移方程dp[i][j

原创 [leetcode] BestTimeSellStock I, II, III, IV

BestTimeSellStock I 問題描述:給定一組數字,代表每天股票的價格。假定現在只能進行一筆交易,計算出所能獲得利潤的最大值。 解法:針對每個價格,我們只要知道它前面價格的最小值即好。所有我們可以遍歷整個數組,並用一

原创 [計算機網絡] localhost,127.0.0.1,0.0.0.0

當我們在啓動server服務的時候,我們需要指定本地IP。這時候我們有三種方法 localhost: client也必須是寫localhost 127.0.0.1 client可以寫localhost,127.0.0.1 0.

原创 [leetcode] findDuplicateNumber

FindDuplicateNumber 問題描述:給定一個數組長度爲N,裏面元素的取值範圍是1~N-1。所有會有一個數是重複的,請找到這個重複的數字並返回。 解法1:暴力 最直接的辦法就是利用兩重循環來尋找 當碰到相同的數字的

原创 [leetcode] CourseSchedule

CourseSchedule 問題描述:輸入一個n代表我們有N門課程,編碼成0-n-1, 然後給一系列課程的前置條件,問這樣安排課程是否合理。 問題可以轉化成判斷圖中是否有環的問題。 我們將每門課程看成一個節點。 前置條件是條

原创 [leetcode] PalindromeLinkedList

PalindromeLinkedList 問題描述:給定一個單向鏈表,試判斷該鏈表是否是迴文鏈表。 解決思路1 因爲該鏈表是單向的,所以我們不能想vector那樣從後向前訪問。 所以我們可以先將ListNode存儲起來,然後再

原创 [leetcode] ReverseListI II

ReverseList I, II 問題描述,給定一個list,起點m,終點n。試只遍歷一次鏈表達到將m->n之間反轉的目的。對於I來m=第一個節點,n=最後一個節點。我們可以假設0<=m<=n<=length of the lis