原创 給一個有N個整數的數組S..和另一個整數X,判斷S裏有沒有2個數的和爲X,請設計成O(n*log2(n))的算法

思路:先從小到大排序,然後分別從頭start到尾end的和判斷下一步,如果大於X,尾部end--,如果小於X,頭部start++ #include<iostream.h> void QuickSort(int S[],int st

原创 字符串通配符匹配問題

題目:在一篇英文文章中查找指定的人名,人名使用二十六個英文字母(可以是大寫或小寫)、空格以及兩個通配符組成(*、?),通配符“*”表示零個或多個任意字母,通配符“?”表示一個任意字母。 如:“J* Smi??” 可以匹配“John Smi

原创 執行任務處理(有一臺機器,上面有m個儲存空間。然後有n個請求,第i個請求計算時需要佔 R[i]個空間,儲存計算結果則需要佔據O[i]個空間)

      有一臺機器,上面有m個儲存空間。然後有n個請求,第i個請求計算時需要佔 R[i]個空間,儲存計算結果則需要佔據O[i]個空間(據O[i]個空間(其中O[i]<R[i])。問怎麼安排這n個請求的順序,使得所有請求都能完成。你的算

原创 迪米特法則

迪米特法則 定義:一個對象應該對其他對象瞭解最少 迪米特法則的核心觀念就是類間解耦,弱耦合,只有弱耦合了以後,類的複用性纔可以提高。 迪米特法則的初衷在於降低類之間的耦合。由於每個類儘量減少對其他類的依賴,因此,很容易使得系統的功能模塊

原创 N個雞蛋放進M個籃子問題

      有N個雞蛋和M個籃子,把雞蛋放到M個籃子裏,每個籃子都不能爲空。另外,需要滿足:任意一個小於N的正整數,都能由某幾個籃子內蛋的數量相加的和得到。寫出程序,使得輸入一個(N,M),輸出所有可能的分配情況。       對於前n個

原创 排序N個比N^7小的數,要求的算法是O(n)

算法思路:採用基數排序,用10個桶(vector),每一個桶用隊列表示(queue),分別代表0-9,然後依次從低位到高位開始將要排序的數倒入桶中,然後再順序取出來,直到排序完成。 若有5個數,12,4,5,130,28 第一次(個位):

原创 在一個整形數組中去掉重複的數字

請把一個整形數組中重複的數字去掉。例如: 1,   2,   0,   2,   -1,   999,   3,   999,   88 答案應該是:  1,   2,   0,   -1,   999,   3,   88 ------

原创 寫一個函數查找每個字符的個數,區分大小寫,時間複雜度要求O(n)

char *str="AbcABca";寫出一個函數,查找出每個字符的個數,區分大小寫,要求時間複雜度是O(n) #include<iostream.h> /* ASCII表上的數字0–31分配給了控制字符,用於控制像打印機等一些外圍設備

原创 依賴倒置原則

依賴倒置原則 所謂依賴倒置原則(Dependence Inversion Principle)就是要依賴於抽象,不要依賴於具體。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。 包含三層含義: 1

原创 抽象工廠模式

抽象工廠模式 抽象工廠模式是所有形態的工廠模式中最爲抽象和最具一般性的一種形態。 爲了方便引進抽象工廠模式,引進一個新概念:產品族(Product Family)。所謂產品族,是指位於不同產品等級結構,功能相關聯的產品組成的家族。如圖:

原创 開閉原則

開閉原則 開閉原則(OCP)是面向對象設計中“可複用設計”的基石,是面向對象設計中最重要的原則之一,其它很多的設計原則都是實現開閉原則的一種手段。 遵循開閉原則設計出的模塊具有兩個主要特徵: (1)對於擴展是開放的(Open for e

原创 尋找兄弟字符串

如果兩個字符串的字符一樣,但是順序不一樣,被認爲是兄弟字符串, 問如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串) #include <iostream.h> #include<string.h> bool Isbrothe

原创 把一個單詞增刪改一個字符變爲另外一個單詞的最小操作次數

把一個單詞增刪改一個字符變爲另外一個單詞的最少操作次數。一次操作包含增加、減少、修改一個字符 舉例:abcde變爲acfgh最短編輯距離爲4 思路: 動態規劃題目 1、dp[i][j]表示第一個串前i個字符和第2個串前j個字符的最短編輯距

原创 如何求根號2的值,並且按照需要列出指定小數位

如何求根號2的值,並且按照我的需要列出指定小數位,比如根號2是1.141   我要列出1位小數就是1.1  2位就是1.14,..... 等,由於double精確到小數點後16位,故此題要達到小說點後16或更高就不可以了,如果大神有解決辦

原创 主定理

假設有遞推關係式 其中,n爲問題規模,a爲遞推的子問題數量,n/b爲每個子問題的規模(假設每個子問題的規模基本一樣),f(n)爲遞推以外進行的計算工作。 情形一 如果存在常數,有  那麼 情形二 如果存在常數k ≥ 0,有  那麼