原创 穿點最多的直線
題目描述 在二維平面上,有一些點,請找出經過點數最多的那條線。 給定一個點集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爲待