原创 算法學習-KMP算法

KMP算法是解決字符串查找問題的,給定文本串text和模式串pattern,從文本串text中找出模式串pattern第一次出現的位置。 最基本的字符串匹配算法是暴力求解,時間複雜度爲O(m*n) KMP算法是一種線性時間複雜度的字符串匹

原创 錯誤 The inferior stopped because it received a signal from the Operating System

接手了前同事的一個爛攤子,用的mingW的編譯器,試圖給其切換到msvc編譯器,但編譯問題,加上各種庫的依賴,導致耗時嚴重,領導又不給時間,所以就在現有基礎上接着搞吧。 一開始很不習慣mingW,感覺調試不好調試,編譯器檢測還不嚴格,各種

原创 算法學習-求平方根函數

感覺數學基礎有點喫力,未完待續。。。。。。 #include<stdio.h> int main() { float a; float x; //x爲所求結果 int i=10

原创 算法學習-八皇后問題

想把代碼貼這裏,有時間在慢慢討論 /* * Copyright (c) leo * All rights reserved. * filename: nQueens * summary : * version : 1.0 * a

原创 算法學習-循環染色方案

題目 用紅、藍兩種顏色將圍成一圈的8個旗子染色。規定:若某兩種染色方案通過旋轉的方式可以重合,則只算一種。問:一共有多少種不同的染色方案? 問題分析 用0/1表示顏色方案,8個棋子對應8位二進制數。 ”旋轉重合則只算一種”即

原创 算法學習-漢諾塔(hanoi)

題目 有三根相鄰的柱子,標號爲ABC,A柱子上按從小到大疊放着n個不同大小的盤子,要求把所有盤子每次移動一個,最終放到C柱子上;移動過程可以藉助B柱子,但要求每次移動中必須保持小盤子在大盤子的上面。比如n=10,請給出最少次數的移動方

原创 算法學習-時間複雜度

如下圖中函數的時間複雜度爲多少 有兩種方法去計算 內循環中,對於給定的i,j從i/3累加到i,循環次數爲2/3*i,外層循環中,i從1遍歷到n,每次編程當前值的3倍,即1,3,9,27,。。。通向爲3的k次方且3的k次方小於n,將內層

原创 算法學習-leetcode

可能是自己有點孤陋寡聞,今天才聽說有leetcode這樣的刷面試題的平臺,有時間一定要刷一下

原创 算法學習-二叉查找樹

typedef struct tagSTreeNode   {       int value;       tagSTreeNode* pLeft;       tagSTreeNode* pRight;          tagS

原创 算法學習-字符串循環左移

題目 給定一個字符串S[0...N-1],要求把S的前K個字符移動到S的尾部,如把字符串“abcdef”前面的2個字符‘a’、‘b’移動到字符串的尾部,得到新字符串“cdefab”:即字符串循環左移K。 循環左移n+k位和k位的效果

原创 算法學習-樹轉二叉樹

轉自http://blog.csdn.net/dean_deng/article/details/44540805 普通樹轉換爲二叉樹的方法是: ①樹中所有相同雙親結點的兄弟節點之間加一條連線 ②對樹中不是雙親結點第一個孩子的結點

原创 算法學習-最長迴文子串

題目 給定字符串str,若子串s是迴文串,稱s爲str的迴文字串。設計算法,計算str的最長迴文字串。 枚舉所有字串,顯然是一種解法,但效率太過低下。 算法解析 因爲迴文串有奇數和偶數的不同,判斷一個串是否是迴文串,往往要分開編

原创 算法學習-字符串的全排列

題目 給定字符串S[0...N-1],設計算法,枚舉S的全排列 分析 以1234爲例: 1-234 2-134 3-214 4-231 如何保證不遺漏:保證遞歸前1234的順序不變 代碼如下 #include "stdaf

原创 算法學習-逆波蘭表達式RPN

Reverse Polish Notation,即後綴表達式。 習慣上,二元運算符總是置於與之相關的兩個運算對象之間,即中綴表達方法。波蘭邏輯學家xxxxxxx於1929年提出了運算符都置於其運算對象之後,故稱爲後綴表達式。 如:中綴表達

原创 算法學習-最長公共子序列(LCS)

定義 一個序列S任意刪除若干個字符得到新序列T,則T焦作S的子序列;兩個序列X和Y的公共子序列中,長度最長的那個,定義爲X和Y的最長公共子序列 字符串13455與245576的最長公共子序列爲455字符串acdfg與adfc的最長公