原创 等量正負號段落

已知一個數組,其中有正數、0、負數,請寫一個函數,找出這個數組中最長的,而且正數和負數個數相同的部分數組的長度。 #include <iostream> using namespace std; int array[] = {1,

原创 第四章---查找

問題4.1 尋找腳碼 已知一個整數數組x[],其中的元素彼此都不同,而且也已經從小到大排列好。請用比較大小、相等的方式寫一個程序,找出給定的數組中是否有一個元素滿足x[i] = i的關係。舉例而言,如果x[]有2, 1, 3, 7, 8,

原创 爲什麼很多程序員都選擇跳槽

轉自:http://blog.csdn.net/long892230 今天看到一個帖子:“程序員內部晉升越來越困難,但是外部來的大P越來越多,所以很多人都選擇跳槽”,之後我從三個方面簡要的進行了回答:“外面來的總是有包裝的,內部的都是

原创 快速階乘運算

在前一篇blog中提到了logn複雜度求出C(n,r),利用此結果在(logn)^2複雜度下計算n! oh, fuck!!! 校園招聘微軟的三面面試官出了這道bug題。。。 分析:利用下面的公式可以降低複雜度 由於C(n, n/2)需要

原创 二項式係數加法解

請寫一個程序,求出n中取r個的組合係數C(n,r) 首先,根據C(n,r)的定義求解,不難得出解法如下: unsigned long cnr(int n, int r) { if (n < 0 || r < 0) return 0

原创 集合的所有分割方式

一個集合S的分割就是把S分解成若干個子集S1, S2, ..., Sp,使得S1 U S2 U ... U Sp = S,但對任意兩個不同的子集Si與Sj而言,兩集合的交集爲空。換句話說,集合的分割,就是把該集合分解成若干相互分離的子集。

原创 所有子集

關於所有子集的求法,前面有介紹到利用回溯法,可以求出所有子集的字典序 如果不要求字典序,可以選擇其他思路來解答: 如果所有字符的個數爲N,可以定義一個unsigned int型的數字,初始化爲0,循環+1,直到第N+1位爲1,基於這個思想

原创 擴充Fibonacci數

關於如何求解Fibonacci數本blog前後有幾篇文章都提及到了 ,一般是3種~ 下面的擴充Fibonacci數定義如下: 定義一組叫做擴充的Fibonacci數如下------已知X與Y兩個數,於是擴充Fibonacci數Fi爲 1

原创 SVN常用命令

SVN(Subversion)是一個自由、開源的項目源代碼版本控制工具。目前,絕大多數開源軟件和企業代碼管理,都使用SVN作爲代碼版本管理軟件。 Subversion將文件存放在中心版本庫裏,這個版本庫很像一個普通的文件服務器。不同的

原创 全排列

關於全排列的求解,前文有講到可以利用回溯法來求解~下面介紹一種旋轉法: #include <iostream> using namespace std; #define MAXSIZE 20 #define ROTATE(p) {

原创 如何在面試時寫出高質量的代碼

摘要:有些程序員由於平時沒有養成良好的編程習慣,在面試時寫出的代碼質量不高,最終遺憾地與心儀的公司和職位失之交臂。如何在面試時能寫出高質量的代碼,是很多程序員關心的問題。 程序員在職業生涯中難免要接受編程面試。有些程序員由於平時沒有

原创 如何從技術崗位走向管理崗位:機會是留給有準備的人

文/黃崢嶸 機會總是留給有準備的人。在被從技術崗位提拔到管理崗位之前,技術人員就要具備管理崗位所需要的基本素質和能力,將功課做在前面,提拔只是最後一步。然而,從技術崗位走向管理崗位需要具備哪些素質呢?我結合自己十年的工作經驗談談自己

原创 CSDN題目:湊硬幣問題

這是一個揹包問題,但是我要的不是這些,第一個給出揹包代碼的,20分。其他的不給分。給出我要的結果的,又分。我要什麼結果呢?先看題目。你有(足夠的)5分,2分,1分的硬幣,現在要湊出來12分的結果,那麼最少的硬幣組合是?結果肯定是 【5 5

原创 第五章---排序

問題5.1 二分插入法 插入式排序法是一個極爲簡單的方法,但它的效率十分低,因爲比較次數與n^2成正比,此處n是數據個數,而且還有大量移動數據的動作,請寫一個程序,在這兩點上改進,使得比較次數與nlogn成正比,而且移動數據的速度加快~

原创 Armstrong數字

題目:在3位的正整數中,比如abc,有一些可以滿足a3 + b3 + c3 = abc的條件,也就是說,各個位數的立方和正好是該數的本身,這些數就叫做Armstrong數。試寫一個程序求出所有的3位Armstrong數 #include