原创 STL之雙向鏈表及其迭代器簡單實現

最近在看STL,試着寫一個自己的鏈表模板,與STL相比沒有使用空間配置器,方法也只實現了幾個簡單的插入刪除元素。但是理清了容器、迭代器之間的關係。代碼及測試用例如下。 list_test.h文件 # ifndef LIST_TES

原创 泛型算法之堆排

實現了堆排的泛型算法,測試用例覆蓋了STL的容器,C++內置數組,int,char,double類型元素。 #include <iostream> #include <vector> using namespace std;

原创 騰訊15筆試 爸爸去哪站隊問題

題目:爸爸去哪中的三對父子站成一排,各自父子之間不能相鄰,比如石頭不能相鄰郭濤挨着,以此類推共有多少種站法。 選項120,48,240,144 #include <vector> #include <iostream> #inc

原创 華爲機試 地鐵換乘問題(最短路徑算法)

1.題目描述       描述: 已知2條地鐵線路,其中A爲環線,B爲東西向線路,線路都是雙向的。經過的站點名分別如下,兩條線交叉的換乘點用T1、T2表示。編寫程序,任意輸入兩個站點名稱,輸出乘坐地鐵最少需要經過的車站數量(含輸入的起點和

原创 【轉】2014 IT公司校招應屆生待遇大揭祕

近年來IT互聯網行業發展前景不錯,各大IT公司爲了搶奪優秀的高校應屆畢業生,頻頻開出高價年薪。那麼對於廣大應屆畢業生來說,公司的薪資自然成爲廣大IT行業求職者最爲關注的事情,IT面試通過整理各方面的IT待遇信息,現對IT行業的校招薪水情況

原创 泛型算法之快排

SGI的STL中的sort算法並不是普通的快排,而是對快排改進後的內省排序。優化的地方有檢測快排是否發生分割惡化,若分割次數超出預期值則改爲堆排。另一個優化是快排只負責大範圍的排序,對於小序列(比如長度小於16的數組)則停止排序,

原创 阿里15實習生招聘筆試 字符保序輸出問題

題目: 分佈式系統中的RPC請求經常出現亂序的情況。 寫一個算法來將一個亂序的序列保序輸出。例如,假設起始序號是1,對於(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)這個序列,輸出是: 1 2 3, 4, 5 6 7, 8

原创 【轉】每年的碼農都流去哪了?

作者:魏小康xiaokang          (一)、每年的碼農都流去哪了?      最優質的碼農都去BAT了?錯,純論薪水,BAT最多隻能算是3、4等的offer。     IT民工的畢業去處有哪幾類?就員工來說,我覺得按照

原创 華爲機試 單詞查找、排序、去重

題目:在給定字符串中找出單詞( “單詞”由大寫字母和小寫字母字符構成,其他非字母字符視爲單詞的間隔,如空格、問號、數字等等;另外單個字母不算單詞);找到單詞後,按照長度進行降序排序,(排序時如果長度相同,則按出現的順序進行排列),

原创 華爲機試 尋找最大正方形

給你一個N*M矩陣,每個位置的值是0或1,求一個面積最大的子矩陣,這個矩陣必須是一個正方形,且裏面只能由1構成,輸出最大正方形邊長。 輸入:第一行輸入兩個正整數n,m,之後n行,每行m個數組,爲矩陣第i行第j列的值,只可能是0或

原创 華爲機試 是否存在路徑(深度優先遍歷、回朔法、遞歸)

題目:輸入一個矩陣以及其行列值,矩陣中‘-’表示可以移動的座標,‘#’表示障礙物不可以通過,‘B’表示起點,‘H’表示終點。在矩陣中可以上下左右移動,不可以斜線移動,求問是否存在從起點B到終點H的路徑。 例如輸入: 3 3 B

原创 STL之vector簡單實現

tvector頭文件定義tvector類 //tvector.h文件 #include<iostream> using namespace std; template<typename t> class tcontainer {

原创 【轉】我眼中的IT界offer。。。。。。

我眼中的IT界offer。。。。。。     個人觀點,不喜勿噴。     綜合考慮發展,薪水,環境,壓力。          第0檔:美國互聯網總部special offer(15萬刀起薪)          第一檔:  

原创 華爲機試 黑白棋子最佳匹配(全排列)

題目:棋盤上有黑白兩種顏色的棋子,選出一對黑白棋子,若白棋的橫座標小於黑棋的橫座標,白棋的縱座標小於黑棋的縱座標,則稱這一對棋子爲匹配。求任意個數的黑白棋中最佳匹配的對數。 輸入:白棋個數,黑棋個數 白棋的橫縱座標 黑棋的橫

原创 leetcode題目 旋轉排序數列的查找

題目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6