Time of Update: 2018-12-05
#include <iostream>class A {public: A(); A(int i,double d); virtual ~A();public: friend std::ostream& operator << (std::ostream& fout,A& a); friend std::istream& operator >> (std::istream& fin,A& a);private:
Time of Update: 2018-12-05
題目描述:設L=<a1,a2,…,an>是n個不同的實數的序列,L的遞增子序列是這樣一個子序列Lin=<aK1,ak2,…,akm>,其中k1<k2<…<km且aK1<ak2<…<akm。求最大的m值代碼實現如下:#include "stdio.h"#include <iostream>template < class T > int GetLISLen(T * arr, int n){ if
Time of Update: 2018-12-05
老闆很無理的要求,硬是讓程式能夠根據給定的字串類名來建立相應的對象,哎,為此折騰了幾天!////////////////////////reflect.h檔案#ifndef REFLECT_H#define REFLECT_Hclass ClassDef;class __ClassDefiner;typedef void (*ConstructObjectFn)(void *pObject);typedef void (*DestructObjectFn)(void
Time of Update: 2018-12-05
為什麼重要? 語言翻譯應用程式可以大大方便我們與他人之間的交流。 我16歲那年,在西班牙學了一個夏天的西班牙語。我帶著一台口袋式的西英電子詞典(當時這算高科技)在這個國家磕磕絆絆地遊盪。 現在的語言翻譯應用程式比起老式的膠皮按鈕和單行顯示屏的塑料裝置,功能要多得多。很多應用可以允許你用英語說出或打出一個問題,立即將其翻譯成外語,程式可以將結果大聲朗讀或顯示在手機螢幕上,也可以將本地語言的回應立刻譯回英語。單個應用程式就可以翻譯多種語言,比一個完整版字典包的語種還多。 在舊金山的韓國、日本和中國
Time of Update: 2018-12-05
題目描述:“eeeeeaaaff" 壓縮為 "e5a3f2"代碼實現:#include "stdio.h"#include "stdlib.h"void CompressStrInPlace(char* str){ char *dest=str; if ((0 == str) || ('/0' == *str)) { return ; } char* p = str + 1; char temp[11]; int rep = 0;
Time of Update: 2018-12-05
不像許多其他軟體系統,Nginx 僅有數個命令列參數,完全通過設定檔來配置(想象一下)。[#options 選項][#example 樣本][#lncus 使用訊號載入新的配置][#utnbotf 平滑升級到新的二進位代碼] 選項-c </path/to/config> 為 Nginx 指定一個設定檔,來代替預設的。-t 不運行,而僅僅測試組態檔案。nginx 將檢查設定檔的文法的正確性,並嘗試開啟設定檔中所引用到的檔案。-v 顯示 nginx 的版本。-V 顯示 nginx
Time of Update: 2018-12-05
void ReverseString(char *s, int start, int end) 2{ 3 while (start < end) 4 { 5 if (s[start] != s[end]) 6 { 7 s[start] ^= s[end]; 8 s[end] ^= s[start]; 9 s[start] ^= s[end];10 }11
Time of Update: 2018-12-05
涉及題目描述:(BST—binary search tree,BT—binary tree)1、BST構建2、BT的層次遍曆3、BST的LCA(最近公用祖先)求解4、BST 轉化為有序的double link list5、BT的LCA求解(將LCA問題轉化為RMQ(上一篇blog涉及)問題求解) 相關分析: 1、2問題簡單,不予分析 3、對於BST,它有一個重要的性質:節點的左子樹包含且只包含比它小的節點,右子樹包含且只包含比它大的節點。因此LCA的值一定在這兩個節點之間。1.
Time of Update: 2018-12-05
回溯:const char * MyStrStr( const char * text, const char * pattern) 2 { 3 int i = 0 , j = 0 ; 4 5 while (pattern[i] && text[j]) 6 { 7 if (pattern[i] == text[j]) 8 { 9
Time of Update: 2018-12-05
1、注釋或重複代碼片斷 在我們寫代碼的往往要寫代碼注釋,可是在每個類中寫這些注釋的文字是不是很煩,如果你每次用複製,粘貼的花是不是也是很麻煩,如果我們能想拖控制項一樣,拖到代碼檔案中多好啊,其實在在Vs中是可能的,我們只要把我們的代碼塊選中,然後在代碼模式中向工具箱中把這個代碼快直接拖到工具箱中就行了,接下來,我們在要注釋的地方直接把這個“控制項”拖到我們的代碼中就行了,是不是很酷! 2、格式化整個塊
Time of Update: 2018-12-05
第一次用C#寫遊戲。在C#上寫演算法果然是一個挑戰,時間複雜度太大的話造成的後果比C++明顯好多,於是總是盡量把東西做成O(n)或者O(nlogn)。這次就在上面實現了一個尋路演算法。 這個尋路演算法是這樣的:在16×16的方格上有一些終點,東西在格子上只能上下左右行動。每一個格子需要記錄到其中一個終點的最近的路的所有方向(就像三層迴圈的尋路演算法一樣,最後給出矩陣的那個)。
Time of Update: 2018-12-05
問題:如何匯入匯出大資料量(1000萬條)的表(如t_employee)?步驟:1、從資料庫1中匯出資料2、使用delete刪除資料2中相同表的所有資料。3、匯入。思考:以上步驟對嗎?分析:錯誤有2。1、不應該使用delete刪除大量資料。2、在資料匯入時,資料庫系統將會同時維護索引。所以效率會很低。正確的做法是:1、從資料庫1中匯出2、刪除資料庫2中對應表中的所有索引對象3、使用truncate命令清除該表的所有資料4、匯入(此時資料庫不會再維護索引,效率最高)5、重建相關索引(使用指令碼)注
Time of Update: 2018-12-05
題目:兩個單向鏈表,找出它們的第一個公用結點。鏈表的結點定義為:struct ListNode{ int m_nKey; ListNode*
Time of Update: 2018-12-05
很早前就想寫點總結將編程中遇到的各種錯誤刨根挖底地羅列出來。但是因為這些錯誤(VC中開調試器遇到的各種錯誤對話方塊)都是隨機性的,真正想總結的時候又不想不起來有哪些錯誤。恰好最近運氣比較背,各種錯誤都被我遇遍了,於是恰好有機會做個總結。 這裡所說的VC下的錯誤對話方塊時指在VC中開調試器運行程式時,IDE彈出的對話方塊。 1.不是錯誤的錯誤:斷言 .將斷言視為錯誤其實有點可笑,但是因為有些同學甚至不知道這個,所以我稍微提一下。斷言對話方塊大致上類似於:
Time of Update: 2018-12-05
題目:給定鏈表的頭指標和一個結點指標,在O(1)時間刪除該結點。鏈表結點的定義如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};函數的聲明如下:void DeleteNode(ListNode* pListHead, ListNode*
Time of Update: 2018-12-05
階乘(Factorial)是個很有意思的函數,但是不少人都比較怕它,我們來看看兩個與階乘相關的問題: 1. 給定一個整數N,那麼N的階乘N!末尾有多少個0呢?例如:N=10,N!=3 628 800,N!的末尾有兩個0。 2. 求N!的二進位表示中最低位1的位置。 請點擊"我要發言",提交您的解法或者問題。 我要看答案有些人碰到這樣的題目會想:是不是要完整計算出N!的值?如果溢出怎麼辦?事實上,如果我們從"哪些數相乘能得到10"這個角度來考慮,問題就變得簡單了。 首先考慮,如果N!=
Time of Update: 2018-12-05
代碼實現如下:#include <iostream>using namespace std;int GetG(int m,int n){ if(m<n) { m^=n; n^=m; m^=n; } if(n==0) return m; return GetG(n,m%n);}int GetNG(int* arr,int n){ //int imax=arr[0]; //for(int
Time of Update: 2018-12-05
Consider a function which, for a given whole number n, returns the number of ones required when writing out all numbers between 0 and n. For example, f(13)=6. Notice that f(1)=1. What is the next largest n such that
Time of Update: 2018-12-05
char *delete_adjacent_char1(char *str)...{ if(str==NULL) return NULL; int i=0,j=0; int len=strlen(str); for(j=i+1;j<len;j++) ...{ if(str[i]!=str[j]) str[++i]=str[j]; } str[i+1]=0; return str;}//2,3
Time of Update: 2018-12-05
多位元組資料表示順序問題。Big-Endian and Little-Endian說法來源於Jonathan Swift的作品<Gulliver's Travels>(《格列佛遊記》), 小人國的居民爭吵雞蛋應該從大端開啟還是從小端開啟,作者其實是在模仿當時在天主教徒與新教徒之間進行中的關於各自教義的爭吵。Intel的CPU採用小端標記法,代碼如下:#include <iostream>using namespace std;int CheckEndian(){