原创 [數據結構與算法分析] 棧的鏈表實現

前言 棧是一種較爲簡單而基礎的數據結構,又叫LIFO(Last In Fisrt Out)表,也可以看做是一種限制插入和刪除只能在一個位置上進行的表(這個位置就稱爲棧頂)。 棧的操作也很簡單,大概就是Push, Pop和Top(

原创 [數據結構與算法分析] 二叉查找樹的基礎概念,插入以及刪除

前言 二叉查找樹(Binary Search Tree,又叫二叉搜索樹,二叉排序樹)是這樣的一種數據結構: 它或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右

原创 表的簡單實現——使用C++容器庫(STL List)

前言 表(List)和棧(Stack)是最基礎最簡單的數據結構,爲此,C++提供了現成的庫(std::list與std::stack),其使用方法也比較簡便。 簡介 list和stack在頭文件中分別定義爲: template<

原创 [LeetCode] Container With Most Water 簡要分析

前言 這題非要說貪心的話也算是吧,不過最主要的特徵還是雙指針。LC的題好像不少都是扔倆頭尾指針然後遍歷一遍完事兒的。這道題倒是“短板效應”的不錯體現了。 題目 題目鏈接 Given n non-negative integers

原创 [數據結構與算法分析] 求連續子數組的最大和問題

前言   這幾天一直在讀Weiss的數據結構書(Data Structures and Algorithm Analysis in C:Second Edition),其中第二章是關於簡單的算法分析(引入大O記號等工具),以“求連續子數組

原创 [LeetCode] Two Sum水過

刷LeetCode的第一題,TwoSum,基本算是水過。 題目:https://leetcode.com/problems/two-sum/ Given an array of integers, find two numbers s

原创 [數據結構與算法分析] 鏈表的遊標實現

Weiss書中提到了鏈表的遊標實現,什麼是遊標(Cursor)實現呢? 諸如BASIC和FORTRAN等許多語言都不支持指針。如果需要鏈表而又不能

原创 關於CodeBlocks中stdc++-6.dll缺失的小問題

前一陣子在用CodeBlocks刷OJ(也並不是什麼很難的算法,揹包問題而已)時,遇到了個小麻煩,按下F9編譯運行(有的人習慣用鼠標去點那個小button,多麻煩啊)後,Windows給我跳出個小窗說是stdc++-6.dll缺失

原创 [LeetCode] Symmetric Tree

前言 一道樹相關的簡單題,判斷二叉樹是否對稱。 題目 https://leetcode.com/problems/symmetric-tree/ Given a binary tree, check whether it is

原创 Github上如何取消fork別人的repository

在Github上如果看到有很不錯的項目和作品,一般我們可以進行三種操作:那就是watch, star和fork. Watch也就是關注該repo的動態,star則類似於Facebook和Twitter上的”like”,fork就

原创 [LeetCode] Remove Duplicates from Sorted Array

前言 Remove Duplicates from Sorted Array是比較平易近人的一道題,做的時候直接模擬AC,後來在網上看到有STL做法,利用現成的函數和工具就是簡便啊。 題目 題目鏈接 描述如下: Given a so

原创 [LeetCode] Same Tree

前言 Leetcode之blabla Tree系列的一道水題。 題目 https://leetcode.com/problems/same-tree/ Given two binary trees, write a functi

原创 [LeetCode] Remove Element 分析

Remove Element算是LeetCode的一道水題,不過這題也有多種做法,現就我所知的幾種做一點討論。 題目鏈接:https://leetcode.com/problems/remove-element/ 題目描述:Given

原创 棧的簡單實現——使用C++容器庫(STL Stack)

前言 作爲比較簡單的數據結構,使用C++容器庫中的棧(std::stack)也相對比較簡單。 在頭文件中,棧的定義爲: template< class T, class Container = std::dequ

原创 [數據結構與算法分析] 單鏈表基本操作的實現

  這幾天還在啃Weiss書的Ch.3,隨手把書上單鏈表基本操作的代碼打了一遍,順便補充了一點自己寫的東西(一堆註釋以及幾個函數),經過測試應該是沒問題。   這次嘗試用所謂的"Google Style"寫代碼,習慣了縮進4空格的Wind