原创 面試題:數組中只出現一次的兩個數

題目描述: 一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。 分析: 合理使用位運算,兩個相同的數字求異或,結果爲0 代碼: class Solution { public: void

原创 各廠面試經歷

目錄 ** 動態庫與靜態庫的區別 **  gcc如何加載動態庫、靜態庫 **  數據庫查詢優化方法 ** Linux下進程內存分段以及分別存儲什麼 ** vector如何擴展內存和釋放內存 ** 瀏覽器訪問vivo.com的過程 ** 簡

原创 C++11新特性部分總結

一、C++11相對C++98顯著變化 C++11的特性改變了書寫C++代碼的風格和習慣,也改變了設計C++庫的方式。例如,你會看到更多的被當作參數和返回值的智能指針,用初始化列表初始化。 C++11相對於C++98有什麼顯著增強呢? 通過

原创 面試題:正則表達式匹配

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

原创 面試題:求1+2+3+...+n

題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 分析: 分析 利用構造函數來累加N和sum,每構造一個變量就執行一次構造函數 利用虛函

原创 vivo面試題

** 動態庫與靜態庫的區別 靜態連接庫就是把(lib)文件中用到的函數代碼直接鏈接進目標程序,程序運行的時候不再需要其它的庫文件;動態鏈接就是把調用的函數所在文件模塊(DLL)和調用函數在文件中的位置等信息鏈接進目標程序,程序運行的時候再

原创 面試題:孩子們的遊戲(圓圈中最後剩下的數)

題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友開始報數

原创 面試題:醜數

題目描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因爲它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 分析 用數組來保存求過的醜數,後面的醜數等於

原创 面試題 數組中的逆序對

題目描述 在數組中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000000007 分析 1.如果對每一個數

原创 面試題:平衡二叉樹

題目描述: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹 分析: 合理設計函數參數,記錄樹的深度,避免搜索重複節點。 代碼: class Solution { public: bool IsBalanced_Solution(T

原创 面試題:最小K個數

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 解法一:基於Partition函數的O(n)算法。缺點:修改數據 解法二:基於最大堆或紅黑樹(set)的

原创 面試題:樹的子結構

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構 分析: 應該有兩個遞歸: 遞歸一:依此檢查兩棵樹的是不是相同(包含) 遞歸二:一次以A樹的每個節點爲根,與B進行遞歸一的檢查 代碼: /

原创 面試題11:數值的整數次方

題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 分析: 指數可能爲負數和0,注意0的0次方要提醒輸入錯誤; 用遞歸解法可以在O(logn)的複雜讀求一個數的正數次方

原创 細節處理&技巧

(1)檢查空指針。如劍指offer15題,求鏈表中倒數第k個節點。要注意檢查第一個指針。 while(k--){ if(p1!=NULL){ p1=p1->next;

原创 leetcode 29. Divide Two Integers

題目 Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator