原创 字符串翻轉(reverse)及相關擴展(數組元素交換重組等)
1、基本問題:字符串翻轉(strReverse),就是將一個字符串倒轉,如abcdef 翻轉後是fedcba 其基本思路就是:將字符串中下標爲(i)的元素與下標爲 (n-i-1) 的元素交換:時間複雜度爲 O(n),空間複雜度爲O
原创 C++類大小確定,構造、析構、靜態、動態綁定(分析一道Oracle面試題)
題目給出一段C++代碼,要求寫出運行結果,代碼如下,大家可以自己先試一下: #include <iostream> using namespace std; class A{ public: A(){ cout<<"A::A()"
原创 拆分,組合謎題 -【分割手鍊問題】【分割砝碼問題】
1、分割秤砣問題 一個40g的砝碼被分成4塊,這4塊恰好可以稱出1-40g之間所有重量(整數)。求這4塊分別多重. 答案:1,3,9,27;這正好組成了三進制數的基,正好有三種狀態:每個砝碼:放左盤,放右盤,不放。所以用它們組合能表示出1
原创 求最小的K個數 O(N) 一種實現-基於堆排序
題目要求:給出一組數(有n個),求出前k個最小的數: 形式化描述如下: 給出一組數:c1,c2,...,Cn的無序排列A,設c1<c2<...<Cn,要求輸出c1,c2,...,ck。 算法思想:用給定排列的前k個數建最大堆,對於後面的n
原创 擴展堆棧(stack) O(1) 時間訪問棧中最小值(或最大值)
問題描述:擴展stack的實現,完成正常的push,pop操作,新增訪問最小(或最大)元素的接口Min(),使得push,pop,Min的時間複雜度都是O(1)。 問題分析:拿到這道題,我們最先的思考往往是,設計一個算法從棧中拿到最小值,
原创 二分查找 (請大家給看看,歡迎提bug,請不吝賜教)
今天在讀Jon Bentley的Programming Pearls,看到二分查找處,據說Jon當年做了測驗90%的學生都給寫錯了, 我就順手也寫了個試試,Jon的學生都是世界Top系列名校的學生,所以我懷疑我的程序中也存在我沒測試出來的
原创 C語言中的跳轉goto&&setjmp&&longjmp sigsetjmp siglongjmp
1、goto語句,函數內部的短轉移 goto語句只能跳轉的到本函數內部的標籤處,這個沒得說,例子如下: #include <stdio.h> int main() { int i=0; l
原创 shell中數組的使用
#!/bin/sh #數組的創建 array=(jim lilei richard mack mike) arrayB=("happy lee" "pig wang" "peter zn" "jack zhang" "jim
原创 關於轉圈打印數字,輸入指定行和列和起始值,自動完成打印
要求按照如下格式循環轉圈打印數字: 1 2 3 4 514 15 16 17 613 20 19 18 712 11 10 9 8 受Jon Bentley(Programming