原创 夜深人靜寫算法(一)- 搜索入門
目錄 一、深度優先搜索 1、DFS 2、基於DFS的記憶化搜索 3、基於DFS的剪枝 1) 可行性剪枝 2) 最優性剪枝 4、基於DF
原创 夜深人靜寫算法(二)- 動態規劃
目錄 一、動態規劃初探 1、遞推 2、記憶化搜索 3、狀態和狀態轉移 4、最優化原理和最優子結構 5、決策和無後效性 二、動態規劃的經典模型 1、線性
原创 夜深人靜寫算法(三)- 樹狀數組
目錄 一、從圖形學算法說起 1、Median Filter 概述 2、r pixel-Median Filter 算法 3、一維模型 4、數據結構的設計 5、樹狀數
原创 夜深人靜寫算法(十五)- 霍夫曼編碼
文章目錄一、概述1、算法簡述2、引例源字節流壓縮字典編碼規範化解碼二、概念1、變長編碼2、前綴編碼3、比特串4、壓縮率三、算法詳解1、算法要求2、算法簡述壓縮前的串頻次統計霍夫曼樹構造霍夫曼編碼霍夫曼壓縮不可達字符霍夫曼解壓縮四、
原创 解題報告 (五) Burnside引理和Polya定理
Burnside引理 筆者第一次看到Burnside引理那個公式的時候一頭霧水,找了本組合數學的書一看,全是概念。後來慢慢從Polya定理開始,做了一些題總算理解了。本文將從最簡單的例子出發,解釋Burnside引理和Polya定理。
原创 解題報告 (四) 中國剩餘定理
中國剩餘定理 中國剩餘定理,求的是模線性方程組的通解,如圖1所示,其中(mi, ai)都是已知量,x是未知量。需要求的就是x,讓它滿足以下n個等式: 圖1 舉個最簡單的例子,如圖2所示,x滿足三個同餘方程,我們可以將三個方程進行一個轉化
原创 解題報告 (三) Manacher算法
迴文子串 迴文分爲奇數迴文和偶數迴文,即字符串的長度爲奇數還是偶數。其實只需要討論奇數的情況,即以某個字符爲中心,左右兩邊的字符按照中心對稱的情況(偶數的情況可以通過本文末尾的方法轉換成奇數的情況)。 最長迴文子串
原创 Linux 的 mysql 安裝
一、mysql 安裝 1、下載 版本選擇5.6.33,linux環境,centos6.8。 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.
原创 基於自己項目的 lua 代碼規範和一些書寫的注意事項總結
目錄 一、邏輯和數據 1、邏輯數據分離 2、邏輯的清晰性 3、邏輯的共性 4、數據的聚合性 5、數據的序列化 和 反序列化 二、常量 1、幻數(magic number)
原创 Redis底層詳解(八) LRU 算法
一、LRU 算法概述 1、LRU 概述 LRU 是 Least Recently Used 的縮寫,即最近最少使用,是內存管理的一種頁面置換算法。算法的核心是:如果一個數據在最近一段時間內沒有被訪問到
原创 Redis底層詳解(七) HyperLogLog 基數估計
一、HyperLogLog 概述 HyperLogLog 算法一種概率算法,用來實現大數據下的基數估計,即無法精確計算集合的基數,存在一定偏差。具體的算法實現可以參見我寫的另一篇文章:夜深人靜寫算法(十四)- 基數
原创 夜深人靜寫算法(十四)- 基數估計 (Cardinality Estimation)
目錄 一、概述 1、最小值估值法 2、哈希法 3、k-前綴法 二、Linear Counting 1、算法思路 2、算法證明 三、LogLog Counting 1、
原创 Linux 修改系統時間
一. date 查詢當前時間 [root@localhost ~]# date -R Sat, 01 Jan 2000 12:02:12 -0400 後面的那個 -0400 表示時區,需要用 tzselect 進行設
原创 Leetcode - MYSQL 專題
Leetcode - MYSQL 專題 花了點時間把 Leetcode 上 SQL 部分的 非付費題 做了一下,很多例題還是很經典的~所有複雜邏輯都可以在一條語句裏面完成。體會到了 select 語句的博大精深。
原创 Redis底層詳解(六) 跳躍表
一、跳躍表概述 跳躍表是有序集合的底層實現之一。 1、跳躍表結點 跳躍表的結點 zskiplistNode 定義在 server.h 中,定義如下: typedef struct zskipl