原创 數組中只出現一次的數字

一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。 用位運算,先將所有數字異或可以得到只出現一次的兩個數字異或的結果resXor,記下resXor右數第一個爲1的位置,說明num1和num2在這一

原创 數組中的逆序對

在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 這道題一開始直接暴力,用插入排序,

原创 兩個鏈表的第一個公共結點

輸入兩個鏈表,找出它們的第一個公共結點。 注意:公共節點指的是它們的尾部相同,而不僅僅是值相等 /* struct ListNode { int val; struct ListNode *next; ListN

原创 刪除鏈表中重複的結點

在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5 /* struct ListNode { int v

原创 數據流中的中位數

題目描述 如何得到一個數據流中的中位數?如果從數據流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從數據流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。 參照劍指offer,用最大堆和最小

原创 把字符串轉換成整數

將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0 輸入描述: 輸入一個字符串,包括數字字母符號,可以爲空 輸出描述: 如果是合法的數值表達則返回該數字,否則返回0 輸入

原创 [華爲機試題]合唱隊

題目描述 計算最少出列多少位同學,使得剩下的同學排成合唱隊形 說明: N位同學站成一排,音樂老師要請其中的(N-K)位同學出列,使得剩下的K位同學排成合唱隊形。  合唱隊形是指這樣的一種隊形:設K位同學從左到右依次編號爲1,2…

原创 [華爲機試題]四則運算

題目描述 請實現如下接口      /*  功能:四則運算      *  輸入: strExpression :字符串格式的算術表達式,如 : "3+2*{1+2*[-4/(8-6)+7]}"           *  返

原创 二叉樹的下一個結點

給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 主要是當前結點如果是父節點的右孩子時的處理:需要一直上溯,找到是左孩子的結點 /* struct T

原创 醜數

題目描述 把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 第一種思路:暴力,計算每個數是不是醜數,是

原创 構建乘積數組

題目描述 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 方法一:另外開闢了

原创 整數中1出現的次數(從1到n整數中1出現的次數)

題目描述: 求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?爲此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。ACMer希望你們幫幫他,並把問題更

原创 打印二叉樹的兩個題目

1、按之字形順序打印二叉樹: 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 用兩個棧 /* struct TreeNode { i

原创 正則表達式匹配

題目描述 請實現一個函數用來匹配包括'.'和'*'的正則表達式。模式中的字符'.'表示任意一個字符,而'*'表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a

原创 第一個只出現一次的字符位置和字符流中第一個不重複的字符

第一個只出現一次的字符位置: 在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置 用哈希表,遍歷兩次,第一次統計個數,第二次判斷第一個只出現一次的 代碼: class Soluti