原创 Threadlocal

最後來做個總結吧,可能泄露的場景僅且僅在: 線程run方法結束後沒有顯示的調用remove進行清理 線程在線程池的模式下,一直重複運行

原创 LeetCode204計數質數

class Solution { int count=0; public int countPrimes(int n) { for(int i=2;i<n;i++){ if(ch

原创 LeetCode107二叉樹的層次遍歷

給定一個二叉樹,返回其節點值自底向上的層次遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷) 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其自

原创 約瑟夫環問題

1、題目描述 已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號爲k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。 2、思想

原创 非遞歸遍歷二叉樹 Java

非遞歸實現二叉樹的前序遍歷 ```public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ret = new ArrayList<>();

原创 LeetCode102二叉樹的層次遍歷

給定一個二叉樹,返回其按層次遍歷的節點值。 (即逐層地,從左到右訪問所有節點)。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其層次遍歷結果: [ [3],

原创 序列化二叉樹

/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode

原创 Leetcode120三角形最小路徑和

給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如,給定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和爲 11(即,2 + 3 + 5 + 1

原创 LeetCode113路徑總和2

給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum = 22, 5 / \

原创 劍指offer 二叉樹轉爲雙向鏈表

/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode

原创 Java傳遞

無論是值傳遞還是引用傳遞,其實都是一種求值策略(Evaluation strategy)。在求值策略中,還有一種叫做按共享傳遞(call by sharing)。其實Java中的參數傳遞嚴格意義上說應該是按共享傳遞。 按共享傳遞,是指

原创 Leetcode70爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1 階 +

原创 LeetCode337打家劫舍三

在上次打劫完一條街道之後和一圈房屋後,小偷又發現了一個新的可行竊的地區。這個地區只有一個入口,我們稱之爲“根”。 除了“根”之外,每棟房子有且只有一個“父“房子與之相連。一番偵察之後,聰明的小偷意識到“這個地方的所有房屋的排列類似於一

原创 LeetCode63不同路徑二

網格中的障礙物和空位置分別用 1 和 0 來表示。 說明:m 和 n 的值均不超過 100。 示例 1: 輸入: [ [0,0,0], [0,1,0], [0,0,0] ] 輸出: 2 解釋: 3x3 網格的正中間有一個障礙物。 從左

原创 LeetCode62 不同路徑

一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記爲“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記爲“Finish”)。 問總共有多少條不同的路徑? 輸入: m =