原创 穿點最多的直線

題目描述 在二維平面上,有一些點,請找出經過點數最多的那條線。 給定一個點集vector<point>p和點集的大小n,沒有兩個點的橫座標相等的情況,請返回一個vector<double>,代表經過點數最多的那條直線的斜率和截距。</do

原创 C++題目總結5

1.宏定義不會做語法檢查,所以#define沒有錯誤一說,檢查出來錯誤是在預處理之後的編譯階段使用宏定義處出現的錯誤。     2.struct和class的區別,聲明成員時默認的訪問屬性爲public和private,繼承時的默認屬性爲

原创 N皇后問題

以前曾經接觸過N皇后問題,太久沒有做了,再次遇到時,在判斷是否可以在該位置放置皇后出現了點小問題導致超時了,所以複習一下。   N皇后問題: 題目描述 請設計一種算法,解決著名的n皇后問題。這裏的n皇后問題指在一個nxn的棋盤上放置n個棋

原创 第k個數

題目描述 有一些數的素因子只有3、5、7,請設計一個算法,找出其中的第k個數。 給定一個數int k,請返回第k個數。保證k小於等於100。 測試樣例: 3 返回:7   之前做過一道求素因子只有2,3,5的,這類題都是用這個思想做的。

原创 二進制小數

題目描述 有一個介於0和1之間的實數,類型爲double,返回它的二進制表示。如果該數字無法精確地用32位以內的二進制表示,返回“Error”。 給定一個double num,表示0到1的實數,請返回一個string,代表該數的二進制表示

原创 輸出單層結點

題目描述 對於一棵二叉樹,請設計一個算法,創建含有某一深度上所有結點的鏈表。 給定二叉樹的根結點指針TreeNode* root,以及鏈表上結點的深度,請返回一個鏈表ListNode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈接,

原创 尋找下一個結點

題目描述 請設計一個算法,尋找二叉樹中指定結點的下一個結點(即中序遍歷的後繼)。 給定樹的根結點指針TreeNode* root和結點的值int p,請返回值爲p的結點的後繼結點的值。保證結點的值大於等於零小於等於100000且沒有重複值

原创 高度最小的BST

題目描述 對於一個元素各不相同且按升序排列的有序序列,請編寫一個算法,創建一棵高度最小的二叉查找樹。 給定一個有序序列int[] vals,請返回創建的二叉查找樹的高度。   高度最小的二叉搜索樹,就是左子樹和右子樹的節點數進行平分。 左

原创 二叉樹平衡檢驗

題目描述 實現一個函數,檢查二叉樹是否平衡,平衡的定義如下,對於樹中的任意一個結點,其兩顆子樹的高度差不超過1。 給定指向樹根結點的指針TreeNode* root,請返回一個bool,代表這棵樹是否平衡。   二叉平衡樹:左子樹和右子

原创 檢查是否爲BST

題目描述 請實現一個函數,檢查一棵二叉樹是否爲二叉查找樹。 給定樹的根結點指針TreeNode* root,請返回一個bool,代表該樹是否爲二叉查找樹。   錯在,二叉查找樹是當前結點大於左子樹的所有結點,不是隻大於左子樹的頭節點。

原创 有向路徑檢查

題目描述 對於一個有向圖,請實現一個算法,找出兩點之間是否存在一條路徑。 給定圖中的兩個結點的指針DirectedGraphNode* a, DirectedGraphNode* b(請不要在意數據類型,圖是有向圖),請返回一個bool,

原创 整數轉化

題目描述 編寫一個函數,確定需要改變幾個位,才能將整數A轉變成整數B。 給定兩個整數int A,int B。請返回需要改變的數位個數。 測試樣例: 10,5 返回:4   第一種方法:考察異或 class Transform { pu

原创 C++題目總結3

1.指針的值是一個地址,而*爲取出地址中的值操作。 cout一個char*類型的相當於輸出字符串,但是cout一個int*類型的就是輸出地址了,比如 char* p = "abc"; cout << p << endl; //abc c

原创 確定兩串亂序同構

題目描述 給定兩個字符串,請編寫程序,確定其中一個字符串的字符重新排列後,能否變成另一個字符串。這裏規定大小寫爲不同字符,且考慮字符串中的空格。 給定一個string stringA和一個string stringB,請返回一個bool,

原创 基本字符串壓縮

題目描述 利用字符重複出現的次數,編寫一個方法,實現基本的字符串壓縮功能。比如,字符串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字符串沒有變短,則返回原先的字符串。 給定一個string iniString爲待