原创 Effective Java(八)

八、異常 1. 只針對異常的情況才使用異常         異常機制的設計初衷是用於不正常的情形,它只能用於異常的情況,永遠不應該用於正常的控制流。         設計良好的API不應該強迫它的客戶端爲了正常的控制流而使用異常。如果類具

原创 Effective Java(三)

三、類和接口 1. 使類和成員的可訪問性最小化         要區別設計良好的模塊與設計不好的模塊,最重要的因素在於:這個模塊對於外界的其他模塊而言,是否隱藏其內部數據和其他實現細節。一個模塊不需要知道其他模塊的內部工作情況,這個概念被

原创 LeetCode刷題之設計題(持續更新)

1. LRU緩存機制 146. LRU緩存機制 運用你所掌握的數據結構,設計和實現一個  LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (k

原创 LeetCode刷題之搜索(持續更新)

1. 括號生成 22. 括號生成 給出 n 代表生成括號的對數,請你寫出一個函數,使其能夠生成所有可能的並且有效的括號組合。 例如,給出 n = 3,生成結果爲: [   "((()))",   "(()())",   "(())()",

原创 輕鬆學會正則表達式!

        對於正則表達式,相信很多人都知道,但是很多人的第一感覺就是難學,覺得完全沒有規律可尋,而且全是一堆各種各樣的特殊符號,完全不知所云。無論你學習哪一門編程語言,幾乎都不可避免的遇到正則表達式。本文就向你詳細介紹一下正則表達式

原创 Effective Java(五)

五、枚舉和註解 1. 用enum代替int常數         枚舉類型是指由一組固定的常量組成合法值的類型,在編程語言沒有引入枚舉之前,表示枚舉類型的常用模式是聲明一組具名的int常量,每個類型成員一個常量: public stati

原创 LeetCode刷題之數學問題(持續更新)

1. 整數反轉 7. 整數反轉 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 public

原创 LeetCode第176場周賽

1351. 統計有序矩陣中的負數 給你一個 m * n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。  請你統計並返回 grid 中 負數 的數目。 示例 1: 輸入:grid = [[4,3,2,-1],[

原创 LeetCode刷題之排序(持續更新)

1. 排序鏈表 148. 排序鏈表 在 O(n log n) 時間複雜度和常數級空間複雜度下,對鏈表進行排序。 示例 1: 輸入: 4->2->1->3 輸出: 1->2->3->4 示例 2: 輸入: -1->5->3->4->0 輸出

原创 LeetCode第175場周賽

1346. 檢查整數及其兩倍數是否存在 給你一個整數數組 arr,請你檢查是否存在兩個整數 N 和 M,滿足 N 是 M 的兩倍(即,N = 2 * M)。 更正式地,檢查是否存在兩個下標 i 和 j 滿足: i != j 0 <= i,

原创 LeetCode第179場周賽

5352. 生成每種字符都是奇數個的字符串 給你一個整數 n,請你返回一個含 n 個字符的字符串,其中每種字符在該字符串中都恰好出現 奇數次 。 返回的字符串必須只含小寫英文字母。如果存在多個滿足題目要求的字符串,則返回其中任意一個即可。

原创 LeetCode每日一題(持續更新)

3月1日 225. 使用隊列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否爲空 注意: 你只能使用隊列的基本操作-- 也就是

原创 算法模板之DFS

一、基本模板 void dfs(vector<int> &nums, int pos, vector<int> &list, vector<vector<int>> &result, vector<int> &visited) { /

原创 算法模板之BFS

一、基本模板 void bfs(TreeNode* root, vector<vector<int>> &result, queue<TreeNode*> &q) { if(root == NULL) { //

原创 LeetCode第173場周賽

1332. 刪除迴文子序列 給你一個字符串 s,它僅由字母 'a' 和 'b' 組成。每一次刪除操作都可以從 s 中刪除一個迴文 子序列。 返回刪除給定字符串中所有字符(字符串爲空)的最小刪除次數。 「子序列」定義:如果一個字符串可以通過