原创 Raft 學習心得
Raft 算法: Raft是工程上使用較爲廣泛的強一致性、去中心化、高可用的分佈式協議。(在學術理論界最耀眼的還是Paxos,但是他比較難理解。) Raft is a consensus algorithm for man
原创 二叉樹的左(右)視圖
static void LeftView(TreeNode node) { Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.off
原创 雜題分享--部分翻轉字符串
* 描述: * 給定一個字符串str和長度leftsize, * 請把str左側leftsize的部分和右部分做整體交換。要求額外空間複雜度O(1)。 * 例如: * 輸入: abcde 3 * 輸出: deabc * 輸
原创 leetcode 48 旋轉圖像
給定一個 n × n 的二維矩陣表示一個圖像。 將圖像順時針旋轉 90 度。 說明: 你必須在原地旋轉圖像,這意味着你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。 示例 1: 給定 matrix = [
原创 leetcode 7 整數反轉
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們
原创 leetcode 179 最大數
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個
原创 給定一個節點,找出它是第幾層第幾個!
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class Main { public stat
原创 兩個數組相加
輸入: 123 123 輸出:456 輸入: 9 9 輸出: 18 public class Main { public int[] add(int[] a, int[] b) { if (a.length
原创 找出二叉樹每層的最大值節點
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class Main { public stat
原创 鏈表翻轉
反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL //非遞歸 public ListNode reverseList(ListNode head) { L
原创 快排非遞歸
import java.util.Arrays; public class TestQuickSort { public static int partion(int []array,int low,int hign){
原创 二叉樹的左視圖
static void LeftView(TreeNode node) { Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.off
原创 反轉從位置 m 到 n 的鏈表
反轉從位置 m 到 n 的鏈表。請使用一趟掃描完成反轉。 說明: 1 ≤ m ≤ n ≤ 鏈表長度。 示例: 輸入: 1->2->3->4->5->NULL, m = 2, n = 4 輸出: 1->4->3->2->5->NULL c
原创 二叉樹的層次遍歷帶Level
class Solution { List<List<Integer>> levels = new ArrayList<List<Integer>>(); public void helper(TreeNode nod
原创 leetcode 25 k個一組翻轉鏈表
給你一個鏈表,每 k 個節點一組進行翻轉,請你返回翻轉後的鏈表。 k 是一個正整數,它的值小於或等於鏈表的長度。 如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。 class Solution { pu