原创 前序和中序重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。

原创 兩個棧實現一個隊列

兩個棧來實現一個隊列,完成隊列的Push和Pop操作 import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integ

原创 旋轉數組的最小數字

把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。NOTE:給出的所有元素都大

原创 有序二維數組的查找

在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 class Solution { public boole

原创 小矩形覆蓋大矩形

用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法 public class Solution { public int RectCover(int

原创 求數值的整數次方

給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方 public class Solution { public double Power(double bas

原创 跳臺階

一次可以跳上1級臺階,也可以跳上2級。求跳上一個n級的臺階總共有多少種跳法 class Solution { public int JumpFloor(int target) { int before1 = 1

原创 求二進制中1的個數

輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示 public class Solution { public int NumberOf1(int n) { int count =

原创 dfs+避免重複-幸運的袋子(網易題)

一個袋子裏面有n個球,每個球上面都有一個號碼(擁有相同號碼的球是無區別的)。如果一個袋子是幸運的當且僅當所有球的號碼的和大於所有球的號碼的積。例如:如果袋子裏面的球的號碼是{1, 1, 2, 3},這個袋子就是幸運的,因爲1 + 1 +

原创 動態規劃-凸多邊形

時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 給定一個凸多邊形的N個頂點。你需要在凸多邊形內找到M個點,使得這M個點也圍成一個凸多邊形,並且圍成的面積儘可能大。 輸入 第一行包含兩個整數N和M,意

原创 git 多賬號配置

第一步:生成密鑰 $ cd ~/.ssh  $ ssh-keygen -t rsa -C "[email protected]" 出現: Generating public/private rsa key pair. Enter file i

原创 判斷是否是二叉搜索樹的後序遍歷

輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。假設輸入的數組的任意兩個數字都互不相同。 5 7 6 9 11 10 8 Yes7 4 6 5No public class Solution {

原创 矩陣-不要二(網易題)

二貨小易有一個W*H的網格盒子,網格的行編號爲0~H-1,網格的列編號爲0~W-1。每個格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。對於兩個格子座標(x1,y1),(x2,y2)的歐幾里得距離爲:( (x1-x2) *

原创 包含min函數的棧

定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。 import java.util.*; public class Solution { Stack<Integer> stack = new Stack

原创 判斷出棧順序是否滿足入棧順序

輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。 假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不