原创 I,P,B幀和PTS,DTS的關係

基本概念: I frame :幀內編碼幀 又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視頻壓縮技術)的第一個幀,經過適度地壓縮,做爲隨機訪問的參考點,可以當成圖象。I幀可以看成是一個圖像經過壓縮

原创 鏈表以k單位翻轉

題目:給出一個鏈表和一個數k, 比如鏈表1→2→3→4→5→6; 若k=2, 則翻轉後2→1→4→3→6→5; 若k=3, 則翻轉後3→2→1→6→5→4; 若k=4, 則翻轉後4→3→2→1→5→6; 用程序實現.

原创 libevent學習筆記 -evbuffer

evbuffer用來存儲從網絡接收到和將要向網絡發送的數據,它是一個連續的內存區域,處理數據的方式如同隊列操作一樣,設置指針指示讀出和寫入位置,結構體定義如下: struct evbuffer{ // 當前有效緩衝區的內存起始

原创 C++虛函數與純虛函數

最近在準備校招,做了一些筆試題,發現以前的基礎知識確實有一些遺失,好腦袋不如爛筆頭,所以決定隨筆記下一些基礎知識,以備後用。今天就先寫一寫虛函數與純虛函數。 虛函數是類中被virtual關鍵字修飾的成員函數,爲了實現類的多態性,即

原创 Application.mk文件

Application.mk目的是描述在你的應用程序中所需要的模塊(即靜態庫或動態庫)。 Application.mk文件通常被放置在 PROJECT/jni/Application.mk下, PROJECT指的是您的項目。 要

原创 最小子串查找

題目:給一個字符串s1,和一個小串s2,求算法能在s1中找到包含s2裏所有字符的最小子串。比如:s1 = “ADOBECODEBANC”s2 = “ABC” 最小子串是 “BANC”,要求O(N)的算法。 分析:設置兩個指針p1

原创 openssl庫android版的編譯

今天在編譯andorid版libevent最新版2.1.6時報錯can not find opensll,作爲初次編譯的新手,一頭霧水啊,後幸得公司大神CTO的指點,需要android 版本的openssl,好吧,還等什麼呢,走起

原创 《編程之法》習題集答案整理-第一章

最近讀了某博主整理的一些筆試面試算法題,該書的部分習題是沒有直接答案的,爲了自己學習方便,同時方便後面學習的同學,立此文整理,感謝原博文http://blog.csdn.net/v_july_v/article/details/6

原创 使用android NDK addr2line 定位so 動態庫崩潰位置

addr2line把文件裏面的地址翻譯出對應的文件名和行號,通過給定一個地址和一個文件,定位使用的so 需要是項目工程obj文件下的,且需要和手機崩潰的時同一版本 addr2line -e libp2pmodule.so 0008

原创 求木板最大拼接矩形

給定n塊木板A[1…n],高度記爲A[i],每塊目標高度不等,寬度相等,用這些木板排列成一面木板牆,木板排列好後,求解木板牆中最大的矩形面積,請設計算法求得木板牆最大的矩形面積,並分析算法效率。 舉例說明,如下圖所示的木板排列,

原创 動態規劃方法求最大子連續數組乘積

假設數組爲a[],直接利用動歸來求解,考慮到可能存在負數的情況,我們用Max來表示以a結尾的最大連續子串的乘積值,用Min表示以a結尾的最小的子串的乘積值,那麼狀態轉移方程爲: Max=max{a, Max[i-1

原创 STL vector deque list set map的erase()

最近在使用STL容器的erase()方法中,因爲大意導致程序調試時出現bug,特意搜了一下不同容器的erase()返回值,整理一下,感謝原文(http://www.cppblog.com/Herbert/archive/2009/

原创 不用庫函數sqrt()求一個正整數N的開方

兩種方法: 1.牛頓迭代 int _tmain(int argc, _TCHAR* argv[]) { int N; cout<<"輸入N的值:"; cin>>N ;

原创 Android Studio之Gradle學習

Gradle簡介 Gradle以module來管理project,在Gradle構建的project中通常包含application module(com.android.application),與library module(c

原创 PCH was compiled with module cache oldpath newpath解決辦法

我們在用xcode編譯時,因爲項目由oldpath拷貝到newpath遇到題目所描述的問題,可以進行如下操作可解決問題: 1.Close your project or workspace. 2.In Finder: ⇧shift+⌘