原创 LA3027之並查集

在處理一些有N個元素的合併於查詢問題時,我們經常會使用到並查集(union-find set)這樣一種樹形數據結構來處理,一般來說這樣的問題都是看似很簡單,但是數據量很大,容易超時,但是採用並查集這種數據結構卻能很容易解決這些問題。 一般

原创 設計模式之Builder模式

Builder模式(建造者模式)是一種比較簡單的設計模式,說到Builder模式,比較容易想到的就是AlertDialog.Builder,安卓中AlertDialog是可以通過Builder生成的,但是爲什麼需要使用Builder呢?下

原创 Android入門之Fragment

    工作主要做Android開發,所以也就開始了Android學習之旅,其實之前也是接觸過一點Android的東西,但是都是淺嘗輒止,但是現在開始要好好研究啦,好了,下面開始這篇文章的重點,Andro

原创 UVA 11997之多路歸併問題求解

看了下同學的算法競賽入門經典這本書,正好是UVA的題,於是就按照那個上面的順序開始刷,看到一道題是LA上的,大概說的是有兩個信號源分別按照各自週期發出信號,每個都有相應的週期,然後還有各自ID,然後讓你根據發出時間和ID來輸出信號源發出信

原创 UVA 100題解

因爲今天才開始刷UVA的題目,首先肯定是拿到簡單題試試啦,這題水題一個,首先數據量很大,達到了1000000,如果寫個函數每次對區間內的數判斷循環數的話超時妥妥的,所以首先直接開個大數組,保存下來每個數字的循環次數,然後就是利用好已有的數

原创 LeetCode-Evaluate Reverse Polish Notation

水題一枚,直接壓棧出棧即可,不過調用內置函數可以節省很多力氣,如: int stoi(const string& s); 具體代碼如下: class Solution { public: int evalRPN(vector

原创 LeetCode-Sort List

這個題目比較有意思,因爲平時比較熟悉的排序一般就是對數組操作,題目要求O(n log n)和constant的空間複雜度,能有O(n log n)的算法一般就是merge sort,quick sort或者heap sort,這裏qui

原创 LeetCode-Max Points on a Line

這也是一道比較簡單的題目,不過有陷阱,比如可以有相同的點,還有斜率爲極限的情況。 題目要求算出最多有多少點在一條直線上,容易想到的就是一個二重循環,以一個點爲中心,算出其他所有的點與它直接的斜率,然後用一個map來存儲,鍵爲斜率值爲點的個

原创 codeforce round 175 div2

  哎,這次的cf題比較簡單的說,但是還是很粗心,只做出來兩題,先說說我做的兩題吧。水題兩枚。 這次的主題是permutation,permutation就是一個有序的正整數集合:p1,p2,p3...pn,且各不相同,n就是這個序列的大