題目大意: 給出兩個字符串a,b,將a串變為b串,每次可以將連續的一個子串改成任意的一個字母,問最少需要操作多少次。 (字符串長度不會超過100) 題解:
include<iostream> #include<vector> #include<algori
第十四題 題目:輸入一個已經按升序排序過的數組和一個數字, 在數組中查找兩個數,使得它們的和正好是輸入的那個數字。 要求時間復雜度是O(n)。如果有多對數
第十三題 題目:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。 這道題比較簡單,就是對於這個鏈表,定義兩個指針head1 head2,然後讓head1向前
第十二題 題目:求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case 等關鍵字以及條件判斷語句
第十一題 題目: 求二叉樹中節點的最大距離... 如果我們把二叉樹看成一個圖,父子節點之間的連線看成是雙向的, 我們姑且定義"距離"為
第九題 判斷整數序列是不是二元查找樹的後序遍歷結果 題目:輸入一個整數數組,判斷該數組是不是某二元查找樹的後序遍歷的結果。 如果是返回true,否則返回f
第七題 微軟亞院之編程判斷倆個鏈表是否相交 給出倆個單向鏈表的頭指針,比如h1,h2,判斷這倆個鏈表是否相交。 為了簡化問題,我們假設倆個鏈表均不帶環。
第六題 題目: 給你10分鐘時間,根據上排給出十個數,在其下排填出對應的十個數 要求下排每個數都是先前上排那十個數在下排出現的次數。 上排的十個數如下:
第五題 查找最小的k個元素 題目:輸入n個整數,輸出其中最小的k個。 例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4。
第四題 題目:輸入一個整數和一棵二元樹。 從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。 打印出和與輸入整數相等的所有路徑。 例如 輸
第三題 題目: 輸入一個整型數組,數組裡面有正數也有負數,數組中連續的一個或者多個數組成一個子數組,每個子數組都有一個和。 求,所有子數組的和的最大值。要
第二題 題目: 要求設計一個棧,棧包含min函數的功能,即能夠在O(1)的時間內做min, pop, push運算。 分析: 因為傳統的棧只有push和p
第一題 題目:輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。 要求不能創建任何新的節點,只能調整指針的指向。 參考了July的整理。表示感謝
用後綴數組求兩個串的最長公共子串的長度 詳見羅穗骞的論文 [cpp] #include <iostream> #in
題目:給出一些螞蟻的點,給出一些樹的點,兩兩對應,使他們的連線不相交,輸出一種方案。 可以任意假定一種組合,然後兩兩判斷,如果相交,則交換,直
最大權值匹配,建圖不好想,假設某個機器處理了k個玩具,時間分別為a1,a2…..,ak 那麼該機器耗費的時間為a1+a1+a2+a1+a2+
題意: 給你n個點,m個雷 找一個多邊形,使得多邊形的面積除以這個多邊形內雷的個數的比值最小 仔細想想,其實就是找一個比值最小的三角形就OK了,因為其他的
TOYS Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/
取石子游戲 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: