原创 Java—線程池

https://blog.csdn.net/weixin_43214609/article/details/101616329 說到創建線程的方法,少不了提到線程池,因爲其有以下優點: 1.降低資源消耗(創建開銷) 2.提高響應速率(無需

原创 【LeetCode】(簡單)155. 最小棧(空間解決時間,2種方法)

思路: 要求O(1)複雜度找到,不遍歷整個集合是不可能的。 但如果犧牲空間複雜度來滿足這個要求 也是可以的。 有兩種思路: 用兩個棧。一個存儲元素本身,一個存儲當前最小的元素。那麼入棧就得兩個都入,出棧也是。 用一個棧,但是存

原创 【LeetCode】(簡單)160. 相交鏈表(四種方法,java)

思路1: 1.先確定兩個鏈表有沒有相交 2.有的話,最後一個結點一定相同 3.遍歷兩個鏈表到末尾,判斷相同與否,順便計算兩個鏈表長度 4.計算長度差,然後求出相交鏈表的頭節點 代碼1: public class Solution

原创 【LeetCode】(簡單)136. 只出現一次的數字

思路: 1. 利用map集合存儲,key存儲數值,value存儲出現次數;空間複雜度爲O(n),時間複雜度爲O(n) 2. 利用異或運算,首先知道一個結論,i ^ i = 0;  0 ^ i = i ;  所以兩個相同的數異或等於0;在

原创 【LeetCode】SQL(簡單)182.查找重複的電子郵箱

思路: 通過看評論大神和解題有以下幾種方法解決: 通過多表聯查;兩次訪問Person表,找到id不同但是Email相同的Email並輸出,需要注意的是要把輸出結果進行去重(distinct)。 通過分組;將Person表按照

原创 【LeetCode】(簡單)292. Nim 遊戲

思路: 先說結論:作爲先手,如果堆中石頭的數量 n 不能被 4 整除,那麼你總是可以贏得 Nim 遊戲的勝利。 原因:1.小於3塊的話,你作爲先手就可以全拿走,結束遊戲。 2.如果剛好4塊的話,作爲先手一定會輸,因爲對手一定會拿走最後一

原创 【LeetCode】(簡單)235. 二叉搜索樹的最近公共祖先

思路: 1. 還是那句話,關於二叉樹的問題一定要想到用遞歸,而遞歸是不關心方法的具體實現的。 2. 再想想二叉搜索樹的特點,root的值是比左邊大,比右邊小的。所以如果p和q一個在左一個在右,那最近的公共祖先就是root。 3. 如

原创 數據庫事務、隔離級別、髒讀、不可重複讀、幻讀

事務 就是一組DML語句組成,這些語句在邏輯上存在相關性,這一組DML語句要麼全部成功,要麼全部失敗,是一個整體。MySQL提供一種機制,保證我們達到這樣的效果。事務還規定不同的客戶端看到的數據是不相同的。(《數據庫系統概念》)

原创 【leetcode】(中等)dp 647.迴文子串數 5. 最長迴文子串

1. 迴文子串數 這道題我是用dp,創建一個dp二維數組,用來存放dp[i][j]這個字串是不是迴文串。 也可以表達:如果最後一個字符和第一個字符相等,而且中間的子串是一個迴文串,那麼i-j就是迴文子串 dp[ i ] [ j ]   

原创 【LeetCode】(簡單)231. 2的冪(3種思路)

思路: 最普通的思路就是無限的給這個n除以2,看它最後是不是等於1。但是這個方法特別耗內存,性能較低。 看leetcode評論說,2的冪一定可以被2的31次冪整除,這也可以判斷。 最最最精妙的方法就是用二進制來做。如果這個數的

原创 信息素養與信息檢索

信息與人的關係 信息是一種資源 可以被人感知 人類認識的基礎 信息素養構成:知識、道德、意識(不會就查)、能力 信息資源的類型:加工深度(0、1、2、3)、載體形式(印刷、聲像、機讀、縮微)、出版形式(文獻、電子、

原创 【LeetCode】(簡單)104. 二叉樹的最大深度(一行代碼實現)

思路: 關於二叉樹的題目,一定要想到遞歸; 遞歸的話,無需關注方法內部怎麼實現的,只需使用它即可。 有一個尋求最大深度的方法,它的作用就是尋找最大深度,那麼一個結點的所構成樹的最大深度就是尋求其左右子樹的最大深度較大的那個 加上root

原创 【LeetCode】(簡單)9. 迴文數

思路1: 將問題轉爲判斷迴文字符串 代碼1: class Solution { public boolean isPalindrome(int x) { if(x <0) return false;

原创 【LeetCode】(簡單)169. 多數元素

思路: 出現次數大於數組長度的一半,意思就是,排序後n/2下標一定是那個數,不然就小於了一半。 代碼: import java.util.*; class Solution { public int majorityElem

原创 【LeetCode】(簡單)344. 反轉字符串

思路: 1. 最偷懶的應該是把字符數組從後向前打印一遍,但是實質上並沒有更改數組內容,不推薦; 2. 和交換兩個元素一樣,把數組從中間分開,兩兩交換;而交換的方法就有兩種種,異或、開闢新空間。 3. i ^= j; j ^= i; i