原创 劍指offer-面試題20:表示數值的字符串

請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3

原创 LeetCode 421. Maximum XOR of Two Numbers in an Array 解題報告(Trie樹)

Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum result of ai XOR aj, whe

原创 2019騰訊實習提前批筆試題-氣球遊戲(滑動窗口)

小Q在進行射擊氣球的遊戲,如果小Q在連續T槍中打爆了所有顏色的氣球,將得到一隻QQ公仔作爲獎勵。(每種顏色的球至少被打爆一隻)。 這個遊戲中有m種不同顏色的氣球,編號1到m。 小Q一共有n發子彈,然後連續開了n槍。 小Q想知道在這n槍中,

原创 2019騰訊實習提前批筆試題-猜拳遊戲(逆元,快速冪)

小Q和牛妹參加一個剪刀石頭布的遊戲,遊戲用卡片來玩,每張卡片是剪刀,石頭,布中的一種,每種類型的卡片有無限個。 牛妹從中選了n張卡片排成一排,正面朝下,小Q也會選擇n張卡片排成一排,然後小Q和牛妹的卡片會依次進行比對,第一張對第一張,第二

原创 劍指offer-面試題18:刪除鏈表的結點

題目一:在O(1)的時間內刪除鏈表結點(牛課無該題) 給定單向鏈表的頭指針和一個節點指針,定義一個函數在O(1)時間內刪除該節點。 思路:首先判斷該節點p有沒有next,如果有,直接p=p->next,相當於就刪除了該節點。其次,在沒有n

原创 劍指offer-面試題11:旋轉數組的最小數字

面試題11:旋轉數組的最小數字 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。 輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小

原创 劍指offer-面試題17:打印從1到最大的n位數(牛課無該題)

輸入數字n,按順序打印出從1到最大的n位十進制數,比如輸入3,則打印出1、2、3....999。 思路:由於n的大小不一定,所以可能long long也存不下。     1、模擬法,利用字符串模擬加法操作     2、全排列,利用遞歸處理

原创 劍指offer-面試題12:矩陣中的路徑

請設計一個函數,用來判斷在一個矩陣中是否存在一條包含某字符串所有字符的路徑。路徑可以從矩陣中的任意一個格子開始,每一步可以在矩陣中向左,向右,向上,向下移動一個格子。如果一條路徑經過了矩陣中的某一個格子,則之後不能再次進入這個格子。 例如

原创 劍指offer-面試題19:正則表達式匹配

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

原创 劍指offer-面試題15:二進制中1的個數

面試題15:二進制中1的個數 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 思路:方法1,使用一個無符號的整數1,從右到左去&n,執行完一次後,向左移位(對於32位整數來說,需要執行32次)。方法2,使用n&(n-1)

原创 劍指offer-面試題13:機器人的運動範圍

地上有一個m行和n列的方格。一個機器人從座標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數位之和大於k的格子。 例如,當k爲18時,機器人能夠進入方格(35,37),因爲3+5+3+7 =

原创 劍指offer-面試題16:數值的整數次方

面試題16:數值的整數次方 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 思路:方法1,直接求,注意任意數的0次方等於1,負數的次方等於它的倒數(時間複雜度O(n))。方法

原创 劍指offer-面試題9:用兩個棧實現隊列

面試題9:用兩個棧實現隊列 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 思路:用stack2用於輸出,每次存入stack1,當要輸入時,倒入到stack2。 class Solution { p

原创 劍指offer-面試題6:從尾到頭打印鏈表

面試題6:從尾到頭打印鏈表 輸入一個鏈表,按鏈表值從尾到頭的順序返回一個ArrayList。 思路:有兩種方向,一是循環,用棧存儲。二是遞歸。但是由於遞歸可能導致爆棧,故不建議採用。 /** * struct ListNode { *

原创 劍指offer-面試題7:重建二叉樹

面試題7:重建二叉樹 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},