原创 leetcode 二分查找錯誤版本

你是產品經理,目前正在帶領一個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。 假設你有 n 個版本 [1, 2, ..., n],你想找出導致之

原创 leetcode 刪除數組中重複出現的數據

26. 刪除排序數組中的重複項 給定一個排序數組,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在 原地 修改輸入數組 並在使用 O(1) 額外空間的條件下完成。  

原创 leetcode 二分查找 計算平方根

  實現 int sqrt(int x) 函數。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回類型是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明

原创 設計模式之單例模式

#include<iostream>//懶漢式 using namespace std; class Singleton{ private: static Singleton *instance; Singlet

原创 leetcode 62 路徑問題

class Solution { public: int uniquePaths(int m, int n) { if(m<0 ||n<0){ return 0; }

原创 動態規劃 區間合併,合併相鄰的石子

設有N堆石子排成一排,其編號爲1,2,3,…,N。 每堆石子有一定的質量,可以用一個整數來描述,現在要將這N堆石子合併成爲一堆。 每次只能合併相鄰的兩堆,合併的代價爲這兩堆石子的質量之和,合併後與這兩堆石子相鄰的石子將和新堆相鄰,合併時由

原创 面試知識點總結

霍夫變換 知識點:圖像空間的一條線,對應於參數空間的一個點,參數空間的一個點,對應於原始空間的一條線, 通過將原始空間的線段進行轉換,如果在參數空間聚集點,即可以認爲原空間存在線段

原创 計算樹的深度

int treedepth(binarytree *tree){ if(tree==NULL){ return 0; } int left = treedepth(tree->left);

原创 c++ 歸併排序

void merge(int array,int L;int mid; int R){ int p1 = L,p2 = mid+1, i=0; int temp[L+R-1]; while (p1<mid &&

原创 樹的遍歷 遞歸與非遞歸實現

void preorder(Tree *tree){ if(t==NULL){ return; } cout<<tree->val<<endl; preorder(tree->left

原创 劍指 offer 計算棧中最小的數據

class Solution {//在這裏利用一個輔助棧來解決問題 public: void push(int value) { datastack.push(value); if (minsta

原创 劍指 offer 鏈表合併

/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Soluti

原创 劍指 offer 判斷一棵樹是否包含另一棵樹

/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NUL

原创 劍指 offer 練習題 利用兩個棧來模擬一個隊列

class Solution { public:     void push(int node) {         stack1.push(node);     }     int pop() {         int temp;

原创 劍指 offer 關於年齡的排序

void sortage(int ages[],int length){ if (ages==NULL || length <0){ return; } int oldest = 99;