原创 數據結構與算法(JAVA版)6_1:快慢指針

面試時鏈表解題方法論 (1)對於筆試,不用太在乎空間複雜度,一切爲了時間複雜度 (2)對於面試,時間複雜度依然放第一位,但是一定要找到最省空間的辦法 面試題:快慢指針 (1)輸入鏈表頭結點,奇數長度返回中點,偶數長度返回上中點(中

原创 數據結構與算法(JAVA版)6_5:給定兩個可能有環也可能無環的單鏈表,頭結點head1和head2.請實現一個函數,如果兩個鏈表相交,請返回相交的第一個節點,如果不相交,返回null

給定兩個可能有環也可能無環的單鏈表,頭結點head1和head2.請實現一個函數,如果兩個鏈表相交,請返回相交的第一個節點,如果不相交,返回null 要求: 如果兩個鏈表長度之和爲N,時間複雜度請達到O(N),額外空間複雜度請達到

原创 數據結構與算法(JAVA版)6_2:迴文問題

判斷一個單鏈表結構的字符串是否是迴文結構 package com.inspire.chapter6; import java.util.Stack; public class Code02_IsPalindromeList {

原创 數據結構與算法(JAVA版)6_3:將單鏈表按某值劃分成左邊小、中間相等、右邊大的形式

(1)把鏈表放入數組裏,在數組上做partition(筆試用) (2)分成小、中、大三部分,再把各個部分之間串起來(面試用) package com.inspire.chapter6; public class Code03_S

原创 數據結構與算法(JAVA版)6_4:常見面試題

一種特殊的單鏈表結點類描述如下: class Node{ int value; Node next; Node rand; Node(int v){ value=v; } } rand指針是單鏈表結點結構中新增的指

原创 多線程與高併發-併發容器6_3:LinkedBlockingQueue的實現

案例 線程a往隊列裏添加元素,線程c在隊列裏取元素,兩個線程同時進行並保證線程安全 package com.inspire.juc.c_025; import java.util.Random; import java.util

原创 數據結構與算法(JAVA版)5_1:前綴樹Part1:插入範圍限定在26個小寫字母

package com.inspire.chapter5; public class TrieTree { public static class Node1 { public int pass; public i

原创 多線程與高併發-線程池7_1:交替打印A1b2c3……

題目 交替打印A1b2c3…… 用Locksupport解決 package com.inspire.juc.c_026_00_interview.A1B2C3; import java.util.concurrent.lock

原创 多線程與高併發-併發容器6_1:HashTable、SynchronizedHashMap、ConcurrentHashMap三者之間性能比較

Constants package com.inspire.juc.c_023_02_FromHashTableToCHM; public class Constants { public static final in

原创 多線程與高併發-併發容器6_4:ArrayBlockingQueue的實現

package com.inspire.juc.c_025; import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import jav

原创 多線程與高併發-併發容器6_2:售票demo

案例內容 使用多線程完成10個窗口銷售1000張票 錯誤做法 package com.inspire.juc.c_024_FromVectorToQueue; import java.util.ArrayList; import

原创 多線程與高併發-併發容器6_5:按照緊迫程度排序的DelayQueue

package com.inspire.juc.c_025; import java.net.StandardSocketOptions; import java.util.concurrent.BlockingQueue; i

原创 數據結構與算法(JAVA版)5_3:桶排序思想的排序Part1:計數排序

不基於比較的排序 桶排序思想下的排序:計數排序&基數排序 1)桶排序思想下的排序都是不基於比較的排序 2)時間複雜度O(N),額外空間複雜度O(M) 3)應用範圍有限,需要樣本的數據狀況滿足桶的劃分 計數排序的要求:樣本是整數、且

原创 數據結構與算法(JAVA版)5_2:前綴樹Part2:可插入並檢索任意字符

package com.inspire.chapter5; import java.util.HashMap; public class TrieTree2 { public static class Node1 {