原创 動態規劃-最長上升子序列LIS

  求最長上升子序列,用動態規劃的方法,轉移方程爲: D[i]=max{1,D[j]+1} j=1,2,...,i-1並且 A[j]<A[i] #include<string> #include<iostream> using name

原创 輸出進棧出棧的所有序列

 輸出進棧出棧的所有序列   /* 輸出進棧出棧的所有序列 * 如 abc 則輸出可以爲:cba,bac,bca,abc,acb * input 爲輸入字符串,output爲輸出字符串,保存出棧的序列,需要O(n)的空間複雜度 *

原创 遞歸翻轉棧&遞歸棧排序

1 遞歸的翻轉一個棧 2 遞歸的排序一個棧 兩個操作均不借助其他數據結構 int in=0; // 入棧次數 int out=0; //出棧次數 // 不借助其他結構體,翻轉一個棧中的元素,如 a,b,c -> c,b,a. stati

原创 虛擬繼承內存剖析

C++對象的內存佈局因不同的編譯器有所差異,但是不同繼承的內存佈局比較簡單,在涉及到虛函數,虛繼承時,顯得尤爲複雜。 本內容試圖在vs編譯器下剖析其實景。  (以下都考慮含有虛函數的情況) 1. 對於單虛繼承關係:    class A{

原创 硬幣種類問題及其他

《Cracking the coding interview》第八章第七題 有無限數量的25分,10分,5分,1分,寫代碼計算表示N分的表示方法有多少種。 如N=5;有{5}, {1,1,1,1,1} 兩種 int makeChange(

原创 併發進程的不同輸出結果

    深入理解計算系統,499頁有這麼一個例題。這個例題的輸出會產生多少行?可能順序是什麼?  1 #include <stdio.h>   2 #include <sys/types.h>   3 #include <unistd.h

原创 類繼承中的重載,覆蓋和隱藏

大家看看這個程序會有什麼錯誤呢? class B{ public: virtual void f(int){ cout<<"B"<<endl; } }; class D:public B { public: void f(int

原创 求和爲N的所有子集

給定一個按大下排列好的數列,如A[8]={1,2,3,4,5,8,10,12}; 任意給定一個整數N(比如N=14),求出和爲N的所有子集。 思路:遞歸求解,化解爲小問題;用棧保存所有和爲N的各個項。   #include<iostrea

原创 垃圾回收機制

題記  下文是一些關於垃圾回收的機制,雖然是java機制裏的,但是思想是通用,轉載此文,在於銘記。   詳細介紹Java垃圾回收機制 垃圾收集GC(Garbage Collection)是Java語言的核心技術之一,之前我們曾專門探討過

原创 Linux下配置git/github

介紹ubuntu 下使用git, 並把項目放到github上   1、安裝git:apt-get install git-core      (windows 可下載桌面端 msysgit (ttp://code.google.com/p

原创 求一個集合的所有子集

《cracking the coding interview》第8.3節 例如,對於集合S={a,b} ,子集有 { },{a},{b},{a,b} 四種。 對於集合S,  分類方法1,分爲元素個數爲0,1,2...s (s 爲集合的所有

原创 動態規劃-最長公共子串LCS

1. 動態規劃轉移方程 兩個字符串str1和str2,長度分別爲(len1,len2) dp[i][j]表示以兩個字符串分別以第i和第j個字符結尾所能達到的公共子序列的長度, 假設i,j 下標從1開始到len1,len2, 則      

原创 關於數的問題

問題:給你一個數組 array,以及一個特定值 sum,找出數組中所有和爲sum 的兩個數對。   /*Solution 1 1.建立一個hash table,把數組中的所有元素映射到hash table中, 2 遍歷array中的每

原创 我的智商哪去了

  例題1 分金條問題 你讓工人爲你工作7天,給工人的回報是一根金條。金條平分成相連的7段,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費?   例題2  過橋問題 現在小明一家過一座橋,過橋時候是黑夜,

原创 文件系統備份到雲

  1. 介紹     Cumulus是一個基於薄雲的備份軟件。厚雲是有功能完善的客戶端服務軟件,像金山快盤,其他一些公司的網盤,而薄雲是指服務商只提供了很少的接口(如put,get,delete),像亞馬遜的雲存儲接口S3,百度的雲存儲