原创 leetcode 389. 找不同

給定兩個字符串 s 和 t,它們只包含小寫字母。 字符串 t 由字符串 s 隨機重排,然後在隨機位置添加一個字母。 請找出在 t 中被添加的字母。   示例: 輸入: s = "abcd" t = "abcde" 輸出: e 解釋:

原创 leetcode-401. 二進制手錶

二進制手錶頂部有 4 個 LED 代表小時(0-11),底部的 6 個 LED 代表分鐘(0-59)。 每個 LED 代表一個 0 或 1,最低位在右側。 例如,上面的二進制手錶讀取 “3:25”。 給定一個非負整數 n 代表當前 LED

原创 基本排序算法之快速排序

快速排序是一種分治的排序算法。它將一個數組分爲兩個數組,將兩部分獨立地排序。 快速排序遞歸地將子數組a[lo..hi]排序,先用partition()方法將a[j]放到一個合適的位置,然後再用遞歸調用將其他位置的元素排序。 該方法的關鍵在

原创 優先隊列

定義 普通的隊列是一種先進先出的數據結構,元素在隊列尾追加,而從隊列頭刪除。在優先隊列中,元素被賦予優先級。當訪問元素時,具有最高優先級的元素最先刪除。優先隊列具有最高級先出 (first in, largest out)的行爲特徵。通常

原创 歸併排序

歸併:即將兩個有序的數組歸併成一個更大的有序數組。 原地歸併的抽象方法 該方法用兩個指針分別比較數組左右兩邊的元素大小。該方法創建了一個新的數組用來儲存原來數組的信息。 public static void merge(Comp

原创 動態規劃

題目來源於up主正月點燈籠 https://www.bilibili.com/video/av16544031 ex1  圖中每一個矩形代表一個任務,每個任務都得在某個時間段內完成,同一時間段只能完成一個任務。完成每個任務後可以得到獎勵

原创 leetcode-88. 合併兩個有序數組

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成爲一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別爲 m 和 n。 你可以假設 nums1 有足夠的空間

原创 基本排序算法

選擇排序 實現原理 首先找到數組中最小的那個元素,其次,將它和數組的第一個元素交換位置(如果第一個元素就是最小的元素那麼它就和自己交換)。再次,在剩下的元素中找到最小的元素,將它與數組的第二個元素交換位置。如此往復,直到將整個數組排序。

原创 機器學習實戰 k-近鄰算法

簡單的說,k-近鄰算法採用測量不同特徵值之間的距離方法進行分類。 優點:精度高、對異常值不敏感、無數據輸入假定。 缺點:計算複雜度高、空間複雜度高。 適用數據範圍:數值型和標稱型。 試用k-近鄰算法改進約會網站的配對效果 from nu

原创 LeetCode 14.最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar

原创 leetcode 53.最大子序和

題目描述: 最大子序和               給定一個序列(至少含有 1 個數),從該序列中尋找一個連續的子序列,使得子序列的和最大。         例如,給定序列 [-2,1,-3,4,-1,2,1,-5,4],        

原创 union-find算法

quick-find算法  public class UF { private int[] id; //分量id private int count; //分量數量 public UF(int N){

原创 Interview Questions: Union–Find (ungraded)

最近在學coursera上的算法課程。下面是課後習題的答案。 1. Social network connectivity. Given a social network containing nn members and a log f

原创 數據結構-樹的前序,中序,後序,層序遍歷(java)

中序遍歷(遞歸實現) public void traversal(TreeNode root){ if(root != null){ //中序遍歷: 左、中、右 traversal(root.le

原创 leetcode 429. N叉樹的層序遍歷

給定一個 N 叉樹,返回其節點值的層序遍歷。 (即從左到右,逐層遍歷)。 例如,給定一個 3叉樹 : 返回其層序遍歷: [ [1], [3,2,4], [5,6] ] 說明: 樹的深度不會超過 1000