撒列實現關鍵字過慮二(附源碼)

由於第一個版本想複雜了,思路不是很清新,導致有些問題沒有攻克,過年那些天也想了很多,還是沒有解決,一直想放棄那個解決方案,可就是捨不得放棄,我做了那麼多,我想了那麼久,我不想重頭再來,但到最後還是沒有找到既高效又沒有明顯BUG的解決方案,最終選擇放棄第一版中的解決方案,今天本想用基於撒列的搜尋樹的方式實現的,可寫了一部分代碼後發現還是有些問題,當然並不代表用基於撒列的搜尋樹實現有問題,只是對於我來說有點難度,就算實現了也肯定不高效,最後也放棄了搜尋樹這個方案。最後想到的一個方案就是本篇部落格講的

三道簡單演算法題(一)

好久沒有做演算法題了,重溫幾個簡單的演算法題。第一題:求子數組的最大和這是一道很常見的演算法題,很多人都能很快的寫出演算法,但很多人都不能寫得完全正確,問題主要出在sum初始化上,很多錯誤的答案將他初始化為0,如果數組的所有元素都為負,那麼得到的最大最是0,sum要初始化成數組的第一個元素。 第二題:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句

一個翻牌演算法

本周四同事分享了一個思維訓練的PPT,裡面有一個關於翻牌的題目,題目大致是:拿出從A到10的10張撲克牌,背面朝上摞在一起。首先把最上面的一張挪到下面,掀開新出現的一張牌是A,取出,再挪一張牌到下面,翻一張是2,依次類推,可以有順序地翻出A到10的牌來。請問這10張牌最初是怎麼排列的?看完這個題目,我當時說可以用一個演算法實現。第二天6點多醒來就一直在想這個問題,開始的時候想用遞迴實現,最後發現有點複雜,自己實現不了,然後想用數組實現,想法大致是這樣的,先將這N個數存到數組中,然後將第一張插到最

代碼實現報表列印

   代碼實現報表列印    //初始化報表資訊 private void SetReportInfo(string reportPath,string sourceName,DataTable dataSource,bool isFengPi) {if (!File.Exists(reportPath)) { MessageBox.Show("報表檔案:" + reportPath + "

演算法–將數組分成和相等的多個子數組,求子數組的最大個數

作者:陳太漢一個整數數組,長度為n,將其分為m份,使各份的和相等,求m的最大值  比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1;   {3,6}{2,4,3} m=2  {3,3}{2,4}{6} m=3 所以m的最大值為3演算法 原理的思想是將大問題轉換成小問題。就{3,2,4,3,6}的操作步驟:      第一步:想將數組遞減排序得{6,4,3,3,2},求出數組中所有數的和m=18,第一個最大的數b=6, m/b=3餘數為0,當除數為1,餘數為0時終止。當餘數不為0

演算法–找出數組中出現次數超過一半的數

作者:陳太漢演算法--找出數組中出現次數超過一半的數     每當我看到經典的演算法題,就懷念高中,感覺很多演算法題就是高中的題目,誰叫哥唯讀了個專科,高數基本相當沒學。     有空要看看高數啊,想當年數學那是相當的......#include <iostream>using namespace std;class FindTheOne{public:  方法一  第一個想到的方法是見一個二維數組,一維存數組中的資料,二維存這個數出現的次數。出現次數最多的那個數就是要找的那個數 

【老孫隨筆】搞技術永遠沒有出頭之日嗎?

技術人員如果不從事管理,是不是永遠沒有出頭之日呢?在國內,搞技術也來越不吃香了。人們都想著投身公務員的行列,或是從事商業自己當老闆。許多當年好友一談起自己的技術事業來,就彷彿自己正駕駛著諾亞方舟,意氣風發揮斥方遒。然而多年以後,他們紛紛睿智而又深沉地選擇了管理,再談起技術,就彷彿在談論一艘即將沉沒的破船,有些回憶的傷感,可更多的卻是倖免於難的慶幸。在IT業界,這種現象更加明顯。作為最低層,程式員們好像已經從白領階層退居藍領大軍。大家都很迷惘——莫非我們永無出頭之日,永遠要聽別人使喚,永遠沒有做主

編程之初

大一才摸電腦。電腦概論由謝柏青老師主講。當時很多理科院系的電腦概論課講了電腦群組成和二進位後就講fortran,謝老師則不然,講完基本的電腦原理,先給我們講了office應用,複製、粘貼、格式刷、excel圖表和函數,這些現在司空見慣的東西當時讓我們大開眼界,原來電腦還可以這麼玩,在宿舍裡就成了高手了,學習興趣大增。此外謝老師沒有習慣性的講fortran,而是由學生自己選學fortran還是c,我們雖然什麼都不懂,只是覺得c比fortran時髦一些,就學了c.從以後的經驗來看,培養學生的興趣和尊

用馬爾科夫模型做拼字檢查

原理和原文見 Peter

技術,現實!(勵志篇–心若在,夢就在)

技術,現實!(勵志篇--心若在,夢就在)    前言:今天看到老孫的文章搞技術永遠沒有出頭之日嗎?,有些感慨!所以寫下了下面的文字!   文章發表之後,不少朋友看了有點鬱悶,所以我這裡要聲明一下:你不是一個人戰鬥!    老同事離開老同事老朱要走,送走老朱,大家都有點感歎:老朱算是把電腦這條路走死了。老朱比我們都年長,而且老朱在IT路上已經走了20多年了,已經快四五十了,這些年過去了,老朱還只是一個個普通的開發人員,談不上leader,更談不上領導,工資也就那樣! 其實老朱心裡也清楚,自己不走,

演算法學習–數組

   一個數組存放了2n+1個整數,其中有n個數出現了2次,1個數出現了1次,找出出現1次的數是多少?       //方法一:藉助輔助數組(長度為n+1,元素為一結構體(包含數值和        //個數兩個成員))進行計數,但是時間複雜度為O(n*n),空間複雜度為O(n+1)        //本來是想把Val定義為結構體的,但由於結構體是實值型別,不是參考型別,       

在開發中你可能沒有考慮到的兩個效能最佳化

1:多餘的儲存引用導致效能降低;2:利用局部性提高程式效能;先來說說引用是怎麼降低程式效能,個人認為降低程式效能主要有兩個原因,一是資料結構選擇不合理,二是多層嵌套迴圈導致部分代碼被多餘重複執行。在第二種情況下我們一般都是最佳化迴圈最裡層的代碼,能提出來的盡量往外層提,實在不行的就最佳化它的運行速度。1:多餘的儲存引用導致效能降低。先來看一個關於引用導致效能降低的問題。下面兩個方法哪個更快。 static void Test2(ref int sum) {

經典演算法題–求對策字串的最大長度(第二版)

經典演算法題--求對策字串的最大長度(第二版) 方法一:思路很中規中矩,遍曆這個字串,若有發現相鄰的兩個字元相等,就迴圈判斷與這兩個字元相鄰的兩個字元是否相等,         直到不等,記下字元合格字元個數。最大的個數即為所求。(此方法適合如google這樣的字串) 方法二:思路和方法一時一樣的,適合ggoggle這樣的字串。 方法三:滿足題意,適合任何類型的字串。就是時間複雜度為O(n^2)。方法一int counterplan1(conststring str) {int

電影《記憶片段》影評

前兩天看了電影《記憶片段》,看的時候並沒有很仔細,看完之後感覺一頭霧水,許多的疑問在我腦中湧現出來。主人公萊尼為何要殺死自稱探長的泰迪?薩米究竟是誰?那個納塔莉亞(駭客帝國中的Trinity)又跟萊尼什麼關係?電影中黑白部分和彩色部分是如何銜接的?? 帶著這些問題,我看了網上一些網友的評論,各種各樣的說法都有,也解釋了許多的疑問,甚至有人把這部電影的順序劇情版本剪了出來並發到了網上(執著精神可嘉!),在這種精神的驅動下,我今天又把這部電影重新看了一遍,把劇情也認真理了一遍。看第二遍的時候,思路要

四種方式實現–從尾到頭輸出鏈表

四種方式實現--從尾到頭輸出鏈表  方法一:借用棧倒序輸出鏈表  方法二:先翻轉鏈表,再順序輸出  方法三:遞迴實現,一個字妙,兩個字很妙,三個字太妙了  方法四:用數組實現  方法一:借用棧倒序輸出鏈表        因為棧是先進後出,把鏈表中的元素存進棧中,鏈表前面的元素在棧底,後面的元素在棧頂,鏈表後面的元素先出棧  方法二:先翻轉鏈表,再按順序列印(主要是想自己實現單鏈表的翻轉,這種實現方式破壞了鏈表的結構,當然再翻轉一下就還原了)                 翻轉鏈表的步驟:   

XML檔案解析器TXml

前幾天看了開源的XML檔案解析器TinyXml,它是怎麼實現解析的沒怎麼看懂,於是決定自己實現一個,反正最近不忙。先命名為TXml。現在完成瞭解析和查詢功能,全部代碼加起來不到1000行,將會繼續完善它。源碼必共用先簡單說一下我的思路:1:讀取XML檔案資訊,並存入一個字元數組中;2:遍曆數組,將數組解析成一棵樹;3:以路徑的方式查詢和按屬性查詢;這個解析器最麻煩的地方就在怎麼將字元數組解析成一顆樹。我們先看一下一個簡單XML檔案,他包括檔案頭、節點、節點名稱及節點值、屬性名稱及屬性值,子節點、

遞迴再一次讓哥震驚了

遞迴再一次讓哥震驚了先說那兩個讓哥震驚的遞迴問題:1:用遞迴實現單鏈表的倒序輸出2:從二叉尋找樹中刪除節點,並保證還是二叉尋找樹 同學們可以開始思考這兩個問題了,當然你可能N年前就遇到過這兩個問題,那麼不妨看看,看你是否真的理解了遞迴。實現這兩個問題的代碼當然很簡單,就在下面。 百度百科中遞迴的名片:遞迴做為一種演算法在程式設計語言中廣泛應用.是指函數/過程/子程式在運行過程中直接或間接調用自身而產生的重入現象.遞迴是電腦科學的一個重要概念,遞迴的方法是程式設計中有效方法,採用遞迴編寫程式能使程

等快遞無聊–旋轉字串

等快遞無聊--旋轉字串真是個無語的周末,昨天下午等了幾個小時的快遞,買了兩本書《代碼大全》和《編程珠璣》,還有別人的衣服,今天一大早又跑到公司來等快遞,又是別人的衣服,還沒有到呢,做專業的代購真是無語,本想買票,12306更讓我無語,想登陸門都沒有,只好玩玩程式,昨天看了編程珠璣,裡面有個問題是關於字串的旋轉的,題目如下:將一個N元一維向量左旋i個位置,例如當n=8且i=3時,向量abcdefgh旋轉為defghabc。你能否僅用數十個額外位元組的儲存空間,在正比於n的時間內完成向量的旋轉廢話就

程式員的自我修養–讀書筆記

1:注意不要反回指向棧記憶體的指標或引用,因為在函數返回時改記憶體已經被銷毀了2:C/C++沒有辦法知道指標所指的記憶體容量大小 當數組作為參數傳遞時,數組將退化成相同類型的指標

最近的一些面試感悟

公司一直在招人,可合適的人實在不好招。招了一年多,也就招了五六位。而面試中遇到的各種情況讓人唏噓不已。隨便聊聊1

總頁數: 61357 1 .... 4003 4004 4005 4006 4007 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.