原创 QT之利用QSqlQuery類執行SQL語句

1.connection.h #ifndef CONNECTION_H #define CONNECTION_H #include <QMessageBox> #include <QSqlDatabase> #include <QSql

原创 面試題89:字符串數組首尾字符相同

題目: 輸入一個字符串數組,如果該字符串數組能夠調整順序後使得前面的字符串的尾字符和後面一個字符串的首字符相同,則返回1,如果不能,則返回0。 對第一個字符串沒有任何限定。

原创 面試題91:清除矩陣0所在行列

題目: 請編寫一個算法,若MxN矩陣中某個元素爲0,則將其所在的行與列清零。 給定一個MxN的int[][]矩陣(C++中爲vector<vector>)mat和矩陣的階數n,請返回完成操作後的int[][]矩陣(C++中爲vect

原创 跳躍表

一、相關面試題: 1.跳躍表有沒有聽說過? 2.如何讓鏈表的元素查詢接近線性時間? 二、跳躍表的引入 我們知道,普通單鏈表查詢一個元素的時間複雜度爲O(n),即使該單鏈表是有序的,我們也不能通過二分的方式縮減時間複雜度。   

原创 碰到的筆試題

1.將一個從大到小的數組,用以下排列方法排序成從小到大的,()最快。 【參考】考察幾種排序方法的特徵: 排序方法        平均情況        最好情況        最壞情況        輔助空間        穩定性 冒泡排

原创 QT之TCP通信簡單實現

一、服務器端實現 1.tcpserver.h #ifndef TCPSERVER_H #define TCPSERVER_H #include <QMainWindow> #include <QtNetWork> namespace

原创 面試題95:最小堆的調整、插入和刪除

題目: 一個最小堆,也是完全二叉樹,用按層遍歷數組表示。 1.求結點a[n]的子結點的訪問方式 2.插入一結點的程序void add_element(int *a,int size, int val); 3.刪除最小結點的程序。 思路

原创 外觀模式

外觀模式: 提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀定義了一個高層接口,讓子系統更容易使用。 其目的是讓接口更簡單,將一個或數個複雜的一切都隱藏在背後,只露出一個乾淨美好的外觀。 類圖: 注意: 1)外觀模式沒有“封裝”子

原创 面試題88:二叉樹中結點的最大距離

題目:如果我們把二叉樹看成一個圖,父子結點之間的連線看成是雙向的,我們姑且定義“距離”爲兩結點之間邊的個數。 寫一個程序求一棵二叉樹中兩個結點之間的

原创 面試題90:旋轉數組

題目: 有一副由NxN矩陣表示的圖像,這裏每個像素用一個int表示,請編寫一個算法,在不佔用額外內存空間的情況下(即不使用緩存矩陣),將圖像順時針旋轉90度。 給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉後的NxN矩陣,保證N小

原创 面試題94:刪除最少字符,使字符串爲迴文串

題目: 給定一個字符串s,你可以從中刪除一些字符,使得剩下的串是一個迴文串。如何刪除才能使得迴文串最長呢? 輸出需要刪除的字符的個數。 思路: 先求字符串s的反轉串rs,然後求s和rs的最大公共子序列(子序列和子串的區別是子序列不要求連續

原创 QT之文本編輯器實現

1.mainwindow.h [cpp] view plain copy     #ifndef MAINWINDOW_H   #define MAINWINDOW_H      #include <

原创 模板方法模式

模板方法模式:在一個方法中定義了一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。 這個模式比較簡單,下面先來看咖啡和茶的例子:#include <iostream> usi

原创 面試題93:二叉樹的存儲和還原

bool Binary_Tree::Save(string filename) { ofstream fout(filename.c_str()); if (fout.fail()) return false; fou

原创 小白鼠試藥問題

題目: 有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一點帶毒的水24小時後就會死亡,至少要多少隻老鼠才能在24小時時鑑別出哪瓶水有毒? 思路: 可以用二進制來解決這個問題。 給1000個瓶分別標上如下標籤(10位長度): 00000000