原创 布隆過濾

import java.util.BitSet; public class BloomFilter { private static int defaultSize = 2 << 24; private static int bas

原创 hadoop學習筆記

這段時間簡單的學習了一下hadoop平臺,初步有了一個認識,但是時間看的不多,覺得認識還很淺顯,主要看了下MapReduce和HDFS。在這裏總結一下。 一、概要認識 hadoop是有個用於開發並行計算和分佈式存儲系統的平臺。可以用普通的

原创 最大子串和(HDOJ1003)

最大子串和是一道經典的動態規劃問題。 具體問題是指,在一串連續的數字中,找到一個最大的字串,它們的和在所有的子串中最大, 比如序列,6,-1,5,4,-7,它的連續最大段子串和就是:6 + (-1) + 5 + 4 = 14. 假設a[]

原创 HDOJ1010(搜索+剪枝)

一 題目描述 n m t 4 4 5 S.X. ..X. ..XD .... 在n×m的矩陣中,從‘S’走到‘D’位置,問你用t步能不能走到?典型的搜索題目 二 思路 從起點‘S’開始,遇到‘.’就遞歸搜索,直到到達’D‘,如果恰好走了t

原创 ubuntu eclipse代碼提示黑色背景的解決辦法

#/bin/sh # Tooltip fix # A script to fix themes files in Ubuntu 11.10 # to have readable tooltips in applications such

原创 二叉樹非遞歸前序和中序遍歷

一 前序遍歷: 設置一個棧,從根開始順着左子樹依次訪問併入棧,當左子樹爲空時,說明當前棧頂節點的左子樹訪問完,應該訪問棧頂節點的右子樹,將其入棧,然後重複剛纔的過程。 中序遍歷 設置一個棧,從根開始順着左子樹依次入棧,當左子樹爲空時,說明

原创 Trie樹(HDOJ1075)

一 描述 Trie,又稱單詞查找樹或鍵樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計和排序大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。它的優點是:最大限度地減少無謂的字符串比較,查詢效率比哈希表高

原创 在循環數組中查找某個數K

一 循環數組 例如 4 5 6 7 8 9 1 2 3, 循環有序 二 類似於二分查找的思想,首先定位到中間,然後判斷左右兩個區間,哪個是有序的(一定有一個是有序的),然後判斷k是不是在這個有序區間來判斷下一步在哪個區間去查找 #inc

原创 求字符串的所有組合

void combination(char *s, string res, int len) { if (len == 0) { cout << res << endl; return

原创 最近點對(HDOJ1007)

一 問題描述 假設平面內有N個點,每個點以座標(x, y)給出,N的數據量很大,如何求出其中最近的兩個點。 二 算法 一種方法是暴力,通過枚舉任意兩個點,找到最小的,一共要比較C(n, 2)次,故實踐複雜度爲O(n2)。 另外一種解法用到

原创 堆排序

一 簡介 堆排序(Heapsort)是指利用堆這種數據結構所設計的一種排序算法。堆是一個近似完全二叉樹的結構,並同時滿足堆性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。 二 備忘 #include <stdio.h> in

原创 二叉樹後序遍歷非遞歸實現

一 對於一個節點p,沿着左子樹一直向下,直到沒有左孩子,在此過程中標記節點爲第一次訪問, 現在棧頂第一次訪問該節點,由於右子樹沒有訪問完,按照剛纔的方式訪問右子樹。 訪問完右子樹後,第二次訪問該節點,現在將其出棧並訪問。 二 設置一個節

原创 獲得文件大小

  int fseek(FILE *stream, long offset, int whence);   long ftell(FILE *stream); 先將文件按定位到末尾,然後ftell函數返回當前讀寫位置 #include

原创 linux命令tail的實現

Linux下的tail命令實現查看文件後幾行的功能,前一段面試時被考到,自己動手實現了一下。 代碼如下: #include <stdio.h> #include <stdlib.h> int buffersize = 20; in

原创 凸多邊形三角劃分

1 動態規劃轉移方程 設 F[I,J](I<J)表示從頂點 I 到頂點 J 的凸多邊形三角剖分後所得到的最大乘積 F[I,J]=Min{F[I,K]+F[K,J]+S[I]*S[J]*S[K]}     (I<K<J)目標狀態爲:F[1,