原创 LeetCode--Sudoku Solver(DFS)

題意:求解9*9數獨。 題解:典型的DFS,使用三個hash數組來判斷行,列以及方塊的取值情況,根據深搜不斷更新數組。 代碼如下: class Solution { public: int solve(vector<ve

原创 POJ 1050-To the Max(最大子矩陣和)

題意:給定一個二維矩陣,求它子矩陣的最大和。 題解:首先我們從一維數組出發,給定一個一維數組a[],求它的最大連續子數組和。 易知使用動態規劃,設dp[i]爲以a[i]結尾的最大子數組和。 轉移方程: 若dp[i] > 0

原创 Hadoop FS Shell命令

FS Shell 調用文件系統(FS)Shell命令應使用 bin/hadoop fs <args> 的形式。 所有的的FS shell命令使用URI路徑作爲參數。URI格式是scheme://authority/path 。對 H

原创 LeetCode--Reverse Nodes in k-Group

題意:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If the number

原创 g++ -L 和-l && -I參數

-l參數和-L參數 -l參數就是用來指定程序要鏈接的庫,-l參數緊接着就是庫名,那麼庫名跟真正的庫文件名有什麼關係呢? 就拿數學庫來說,他的庫名是m,他的庫文件名是libm.so,很容易看出,把庫文件名的頭lib和尾.so去掉就是庫名

原创 POJ 3621--Sightseeing Cows(0-1規劃求最大密度)

題意:給定一個<V,E>規模分別爲L和P的有向圖,每個點有點權,每個有向邊有邊權,請找出一個環路,使此環的點權和與邊權和的除積最大。 題解:此類求兩個集合和的最大除積,類似於0-1規劃問題可以先轉化爲線性式子,然後利用二分或者Dinkel

原创 Facebook Hacker Cup 2015 Round 1--Winning at Sports(動態規劃)

原題:https://www.facebook.com/hackercup/problems.php?pid=688426044611322&round=344496159068801 題意:你和一個朋友玩足球遊戲,分數從0-0開始,最終

原创 三種排序算法小結

首先是歸併排序,基本思想爲分治,合併的技巧比較重要,不是原址排序。 代碼如下; int merge(int* x,int left,int mid,int right) { int i,j,k; int L1 = mid-

原创 [轉]文檔的行數未知,怎樣在概率控制下,選擇輸出每行

問題:如何隨機從n個對象中選擇一個對象,這n個對象是按序排列的,但是在此之前你並不知道n的值? 具體些說,在事先並不知道行數的情況下,如何讀一個文本文件,隨機選擇並輸出一行? 解答:我們總是選擇

原创 Facebook Hacker Cup 2015 Round 1--Homework(篩選法求素數)

題意:給定A,B,K(A<=B)三個數,問在[A,B]範圍內的數素數因子個數爲K的個數。 題解:典型的篩選法求素數。首先建立一個保存素數因子個數的數組factorNum[],以及到n爲止含有素數因子個數爲k的二維數組sumNum[n][

原创 將Hadoop中SequenceFile,MapFile轉換爲文本文件

前段時間一直在準備實習的事情,沒有更新項目相關的博客。最近才通過了百度的實習生面試,面試的時候這個小項目助力不少,所以又想來補充一下前面沒有分享的一些項目經驗。 Hadoop輸入輸出格式 Hadoop中mapper的輸入必須是(key,

原创 POJ 1836--Alignment(LIS,LCS)

題意:要求一給定序列的子序列,使其中的士兵至少能向左或向右看到最邊上的士兵。首先假設士兵高度分別爲S1:3 4 5 1 2 5 4 3(discuss的神舉例),我們先不管高度1,2,3,4,5的相對位置,看看有哪幾種滿足要求的排列:單調

原创 Facebook Hacker Cup 2015 Round 1--Autocomplete(字典樹新建與查詢)

題意:給定N個字符串,讓你依次先輸入到手機的字典中,再打印出來,打印的時候我們只需要輸出字符串的前綴或者全部字符串,要求此前綴不是以往任何字符串的前綴。 題解:典型的字典樹,可以利用結構體數組方便的新建與查詢,速度比鏈表更快。只需在插入

原创 POJ 3264--Balanced Lineup(RMQ問題)

題意:給定一數組a[i],輸入任意範圍內的最大最小值之差。 題解:典型的RMQ(range min/max query)問題,對於此種問題,有三種較好的方法。 線段樹:易知對於區間問題,可以使用區間樹較好地解決。在建樹時可以使用遞歸分治

原创 Facebook Hacker Cup 2015 Round 1--Corporate Gifting(樹形動態規劃)

原題:https://www.facebook.com/hackercup/problems.php?pid=759650454070547&round=344496159068801 題意:給定一顆有根樹,在樹上下層的節點要給上層節點禮