原创 玩轉算法面試:(八)動態規劃

動態規劃將原問題拆解成若干子問題,同時保存子問題的答案,使得每個子問題只求解一次,最終獲得原問題的答案。 1,斐波那契數列 (1)遞歸方法 int fib(int n) { if(n == 0) return

原创 玩轉算法面試:(六)二叉樹和遞歸

111. 二叉樹的最小深度 給定一個二叉樹,找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7],    

原创 (三)docker創建鏡像

當我們從docker鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。 1.從已經創建的容器中更新鏡像,並且提交這個鏡像 2.使用 Dockerfile 指令來創建一個新的鏡像 一、利用 commit 理解

原创 SQL基礎篇(一)

一,瞭解SQL 我們可以把 SQL 語言按照功能劃分成以下的 4 個部分: DDL,英文叫做 Data Definition Language,也就是數據定義語言,它用來定義我們的數據庫對象,包括數據庫、數據表和列。通過使用 DDL,我們

原创 玩轉算法面試(八)棧,隊列,優先隊列

一,棧 150. 逆波蘭表達式求值 根據逆波蘭表示法,求表達式的值。 有效的運算符包括 +, -, *, / 。每個運算對象可以是整數,也可以是另一個逆波蘭表達式。 說明:     整數除法只保留整數部分。     給定逆波蘭表達式總是有

原创 數據結構與算法之美(二)

一,二分查找 二分查找的非遞歸實現 public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <=

原创 (五)觀察者模式

觀察者模式(又被稱爲發佈-訂閱(Publish/Subscribe)模式,屬於行爲型模式的一種,它定義了一種一對多的依賴關係,讓多個觀察者對象同時監視某一個主題對象。這個主題對象的狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己

原创 SQL基礎篇(二)

一,存儲過程 存儲過程是程序化的 SQL,可以直接操作底層數據表,相比於面向集合的操作方式,能夠實現一些更復雜的數據處理。存儲過程可以說是由 SQL 語句和流控制語句構成的語句集合,它和我們之前學到的函數一樣,可以接收輸入參數,也可以返回

原创 (六)單例模式

單例模式的作用就是保證在整個應用程序的生命週期中,任何一個時刻,單例類的實例都只存在一個(當然也可以不存在)。 保證一個類只有一個實例,並且提供一個訪問該實例的全局訪問點。   實現單例模式的思路是:  一個類只有一個實例對象。在C++

原创 (三)裝飾者模式

 一,概念 裝飾器模式是一種屬於結構型的設計模式,它通過一層一層地包裝類方式來爲類增加新的方法,本質是利用組合,同時也利用了繼承。與單純的繼承相比,它更加靈活,因爲裝飾類之間可以動態地自由組合來添加功能。 給對象添加方法的方式有多種,通常

原创 C/C++知識點總結(二)

一、關鍵字 1,volatile作用 Volatile關鍵詞的第一個特性:易變性。所謂的易變性,在彙編層面反映出來,就是兩條語句,下一條語句不會直接使用上一條語句對應的volatile變量的寄存器內容,而是重新從內存中讀取。 Volati

原创 (四)工廠方法

工廠類集中了所有實例(產品)的創建邏輯,一旦這個工廠不能正常工作,整個系統都會受到影響; 違背“開放 - 關閉原則”,一旦添加新產品就不得不修改工廠類的邏輯,那樣就需要工廠類中做判斷(比如:if),根據不同的條件或者前提創建不同的對象。這

原创 數據結構與算法之美(三)

一,紅黑樹 平衡二叉樹的嚴格定義是這樣的:二叉樹中任意一個節點的左右子樹的高度相差不能大於 1。最先被髮明的平衡二叉查找樹是AVL 樹,它嚴格符合我剛講到的平衡二叉查找樹的定義,即任何節點的左右子樹高度相差不超過 1,是一種高度平衡的二叉

原创 (一)docker基本概念

環境對軟件的影響 軟件開發最大的麻煩事之一,就是環境配置。用戶計算機的環境都不相同,你怎麼知道自家的軟件,能在那些機器跑起來? 環境配置如此麻煩,換一臺機器,就要重來一次,曠日費時。很多人想到,能不能從根本上解決問題,軟件可以帶環境安裝?

原创 C/C++知識點總結(三)指針問題

一,C++內存泄漏、野指針和空指針 (1)避免內存泄露 在C/C++中,通過動態內存分配函數(如malloc系統函數)或者new運算符分配的動態內存在使用完之後需要手動釋放。否則會造成內存泄露。 即使在malloc/new後顯示調用了fr