原创 leetcode287:Find the Duplicate Number

因爲有時間複雜度和空間複雜度的限制,不能用集合和排序的方法,此處用循環檢測的方法,存在唯一重複的數,數的範圍在1——n,那麼存在指向相同數字的索引(環的入口處),利用環檢測的方法找出環的入口位置。 class Solution {

原创 ThreadLocal類使用

class Channel { //消息發送通道 private static final ThreadLocal<Message> THREAD_LOCAL = new ThreadLocal<>(); publi

原创 java多線程——生產者和消費者

使用同步方法來保證數據的一致性,使用wait() 和 notify() 、notifyAll()方法來解決重複操作。 public class Test { public static void main(String[] a

原创 快排:經典快排、隨機快排

快速排序(Quicksort)是對冒泡排序的一種改進。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方

原创 volatile關鍵字與sycronized區別

正常變量處理時候往往會經歷如下步驟: 1、獲取變量的數據內容副本 2、對變量副本進行計算 3、將計算後的變量放回原來內存 volatitle與同步的關係: volatile關鍵字主要修飾屬性變量,sycronized在代碼塊和方法中使用;

原创 TOP K frequent-elements

class Solution { public List<Integer> topKFrequent(int[] nums, int k) { List<Integer> list = new LinkedLi

原创 二叉樹的中序遍歷——迭代法

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre

原创 tarjan算法非遞歸實現求強連通分量

 tarjan算法用來求有向圖和無向圖的強連通分量,強連通分量的概念請自行百度。 此代碼來源於華爲軟挑的題目,在有向帶權圖中找長度爲3-7的環路; tarjan算法僞代碼: tarjan(u){   DFN[u]=Low[u]=++In

原创 BAD_POOL_CALLERwin10藍屏解決方法

下載安裝IntelRST。 下載鏈接

原创 CentOS7安裝ovs2.9.2

由於因爲ovs和floodlight的版本匹配問題,走了不少冤枉路。在此記一次centos下安裝ovs2.9.2的過程,以備不時之需(Ubuntu下用命令apt安裝是最省事的,編譯安裝對於新手容易踩雷)。 #從官網下載對應版本的ovs(

原创 Java命令運行class文件,提示找不到文件或無法加載類的解決辦法

使用echo打印CLASSPATH: echo $CLASSPATH 缺少當前路徑,修改/etc/profile export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/l

原创 leetcode 46. Permutations

思路一:迭代法 class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> ans = new L

原创 leetcode877:石子游戲

 附上大佬的通用解法https://leetcode-cn.com/problems/stone-game/solution/jie-jue-bo-yi-wen-ti-de-dong-tai-gui-hua-tong-yong/

原创 leetcode---前K個高頻元素

堆排序 class Solution { public List<Integer> topKFrequent(int[] nums, int k) { // 使用字典,統計每個元素出現的次數,元素爲鍵,元素出現

原创 如何理解T extends Comparable

<T extends Comparable<T>> 和 <T extends Comparable<? super T>> 有什麼不同 <T extends Comparable<T>> 類型 T 必須實現 Comparable 接口,並