原创 真的懂遞歸嗎?

什麼是遞歸? 通俗來講:遞歸就是方法自己調用自己,通過每次傳入的參數不同,可以解決複雜的問題。 爲什麼需要遞歸 遞歸算法可以把本身問題分解規模小的同類問題,通過求解規模小的同類問題的解,之後不斷進行返回值,最終可以求得規模大的問題

原创 求得二叉搜索樹的第k小的元素

求得二叉搜索樹的第k小的元素 給定一個二叉搜索樹,編寫一個函數 kthSmallest 來查找其中第 k 個最小的元素。 須知:二叉搜索樹,又叫二叉排序樹,二叉查找樹。特點是:左子樹的所有元素都小於等於根節點,右子樹的所有節點都大

原创 通過外鍵連接多個表

背景 背景一: 當我們建立一個表格,其中的一項內容可以有多種選擇,可以利用外鍵的方式綁定一個表。如下圖比如我們需要建立一個employee表,其中包含很多信息,其中有一項民族可以以外鍵的方式綁定。 接着來看一看sql語句 CR

原创 微人事-持久層

摘要 最近將微人事這個開源項目進行了復現,這篇文章記錄mybaits訪問數據庫這一塊。 其中MyBatis是一個流行的持久層框架,支持自定義SQL、存儲過程和高級映射。MyBatis消除了幾乎所有的JDBC代碼、手動設置參數和檢索

原创 重溫常見的排序算法-複習數據結構-java實現

(重溫)常見的排序算法 code package sort; public class Main { public static void main(String[] args) { } /**

原创 LeetCode(單詞接龍-構造單詞的通用狀態)

20200415 題目 :單詞接龍 給定兩個單詞(beginWord 和 endWord)和一個字典,找到從 beginWord 到 endWord 的最短轉換序列的長度。轉換需遵循如下規則: 每次轉換隻能改變一個字母。 轉換過

原创 LeetCode(楊輝三角)

20200412 題目 :楊輝三角 給定一個非負整數numRows,生成楊輝三角的前numRows行。 在楊輝三角中,每個數是它左上角和右上角的數的和。 示例 : 輸入: 5 輸出: [ [1], [1,1],

原创 LeetCode(顏色分類)

20200409 題目 :顏色分類 給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍

原创 LeetCode(單詞搜索)

20200411 題目 :單詞搜索 給定一個二維網格和一個單詞,找出該單詞是否存在於網格中。 單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個單元格內的字母不允許被重複

原创 LeetCode-股票

20200413 題目 :買股票的最佳時機 給定一個數組,它的第i個元素是一支給定股票第i天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票一次),設計一個算法來計算你所能獲取的最大利潤。 注意:你不能在買入股票前賣出

原创 LeetCode(子集)

20200410 題目 :子集 給定一組不含重複元素的整數數組nums,返回該數組所有的子集。 **說明:**解集不能包含重複的子集。 示例: 輸入: nums = [1,2,3] 輸出: [ [3], [1], [2

原创 LeetCode(跳躍遊戲)

20200404 題目 :跳躍遊戲 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否可以到達最後的位置。 示例: 輸入: [2,3,1,1,4] 輸出: true

原创 LeetCode(查找元素的第一個和最後一個位置)

20200329 題目 :在排序數組中查找元素的第一個和最後一個位置。 給定一個按照升序排列的整型數組nums和一個目標值target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間複雜度必須是 O(log n) 級別