原创 Leecode63不同路徑 深度 和動態

1 深度 超時 int search(int[][] obstacleGrid,int i,int j){ if(obstacleGrid[i][j]==1){ return 0

原创 觀察者模式與監聽模式個人理解

觀察者模式:觀察者相當於事件監聽者,提前註冊好監聽 事件產生後回調對應的事件觀察者 監聽模式:監聽的是事件源 事件對象產生事件傳遞給監聽者

原创 LeetCode刷670 最大交換

先排序 挑最大的與第一個不同的交換 public int maximumSwap(int num) { String s = String.valueOf(num); char[] char

原创 Leetcode刷題718公共最長數組

public int findLength(int[] A, int[] B) { int max =0; for (int i = 0; i <A.length ; i++) {

原创 LeetCode 215數組排序相關冒泡 選擇 快速

冒泡 public int findKthLargest(int[] nums, int k) { for (int i = 0; i <nums.length-1 ; i++) {

原创 idea中優雅關閉程序 調用鉤子函數addShutdownHook

優雅關閉jvm執行標記結束 處理積累的的數據 釋放資源 關閉連接等後續操作需要正常關閉jvm (jvm只有在只有守護線程的時候會自動關閉) 1 等程序自行運行完畢 2 調用System.exit():或者根據操作系統監聽的信號量

原创 整理了一下redis的知識圖譜概覽

1問 爲什麼Redis是單線程 分析:多線程使用場景 a充分利用多核cpu b 文件或者網絡io密集型 任務調度 對於問題1官方解釋 It's not very frequent that CPU becomes your bo

原创 LeetCode刷題46. 把數字翻譯成字符串

遞歸 public class test3 { public static void main(String[] args) { char[] chars = String.valueOf(24).to

原创 java項目中常用的封裝工具類MathUtils

1最大公約數 public static int GetGCD(int a,int b){ if(a<0 || b<0){ return -1; }

原创 LeetCode刷題53最大子序和

1暴力 static int twoSum(int[] nums) { int max = nums[0]; for (int i = 0; i < nums.length; i++) {

原创 LeetCode刷題1兩數之和

第一次 public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map = new HashMap<>();

原创 LeetCode刷題98. 驗證二叉搜索樹

1 根據中序遍歷有序的規則 驗證 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeN

原创 LeetCode刷題3無重複字符的最長子串

關鍵indexof(char,startindex) 1暴力 class Solution { public int lengthOfLongestSubstring(String s) { if(s.

原创 LeetCode刷題202快樂數

第一次解 完全獨立思考 public boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); while (!set.conta

原创 java 遍歷 proto枚舉類MessageTypeProto.MessageType 並輸出枚舉名稱

for (MessageTypeProto.MessageType messageType:MessageTypeProto.MessageType.values()) { String name =