原创 LeetCode 對稱樹解法

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this bina

原创 Java StringBuilder和StringBuffer的比較

StringBuilding 和 StringBuffer是Java中常用的兩個類。 功能都很強大。 二者的最大不同是StringBuilder非同步(non-synchronized),而StringBuffer則是synchroniz

原创 波蘭式解析Evaluate Reverse Polish Notation

本文介紹波蘭式解析算法。 Leetcode 原題如下 Valid operators are +, -, *, /. Each operand may be an integer or another expression. Some

原创 LeetCode 二叉樹的最小深度

計算二叉樹的最小深度。最小深度定義爲從root到葉子節點的最小路徑。 Java版本如下: /** * Definition for binary tree * public class TreeNode { * int v

原创 兩個鏈表相加

給定兩個鏈表,每個節點保存一位數字,節點順序爲反方向。 如下例子: (3->1->5)+ (5->9->2) = (8->0-8) 一下是java版本 public class ListAddition{ public static

原创 相同樹判斷

Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if

原创 基數排序

基數排序的基本思想是,先通過個位數字排序,讓後根據十位數排序,,重複以上知道排序結束。 讀Java算法教材,上面通過Queue來保存中間值,然而優先序列加入新元素需要log(n)的複雜度,總覺得應該有數組來代替。 其次,好多實現代碼都需要

原创 LeetCode 從排序好的列表中刪除重複元素

從排序好的列表中刪除重複元素 Given input array A = [1,1,2], Your function should return length = 2, and A is now [1,2]. java 版本如下

原创 LeetCode 循環鏈表II

判斷一個鏈表是否有循環,如果有返回第一相遇節點,否則返回NULL。 解題思路也是前面的龜兔賽跑問題,只不過問題變成了找循環的第一個節點。 解題如下: /** * Definition for singly-linked list.

原创 設計模式筆記一(strategy pattern)

正式步入碼工界,遇到第一個問題就是Refractor老的project,讓支持新的功能和策略。 無路可退,便踏上了學習設計模式的征程~ 路漫漫其修遠兮.... 言歸正傳,第一個學習的對象是strategy pattern,策略模式。

原创 縮寫i.e. vs e.g.

剛開始寫論文的時候,i.e. 和 e.g.經常混掉。 於是去請教boss,boss解釋如下。 i.e.是拉丁語 id est的縮寫,相當於英語in other words or namely (用於轉述)。 e.g.是拉丁語exempli

原创 Shell Sort

Shell sort是對插入排序的擴展,但是比插入排序速度快很多。 做了一個有趣的對比試驗,比較shell sort和merge sort。 先把需要排序的數組分爲大(>1M),中(1K<1M),小(< 1K),驚奇的發現,shell s

原创 優先序列

堆經常用來做優先隊列( priority queue)。 以下是簡單的java版本。 主要包括插入,添加item, 刪除。 public class PriorityQueue<E extends Comparable<E>> { pu

原创 LeetCode DNA重複序列

All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studyin

原创 SQL Server數據庫

第一次用SQL Server,雖然和mysql有點不一樣。總的來說很好用了。 最棒的是SQL Management Studio還是很讚的。 接下來,玩玩SQL Sever了。 首先創建一個數據庫(Database), CREATE