原创 LIS的單調棧解法

這題 第一問最長不上升子序列 此時維護的單調棧具有不上升的性質 即非嚴格的遞減 我們的目的是讓棧中的元素儘可能的多 所以相等的元素保留在棧中 第二問最長上升子序列 此時需要嚴格遞增 所以相等的元素需要替換 for(int i=0

原创 5 查詢性能優化-多級緩存

緩存設計的時候考慮的問題 用快速存取設備 用內存 將緩存推到離用戶最近的地方 髒緩存清理   多級緩存 redis緩存 熱點內存本地緩存 nginx proxy cache緩存 nginx lua緩存   redis緩存 當做集中式緩存的

原创 第4章 商品模塊開發

1. 明確表和領域模型的設計順序 應該是先設計領域模型再設計表 因爲模型的一些屬性出於安全性或者性能的考慮 可能會需要在數據庫層面進行分開設計 2. 在mybatis-generator.xml裏添加 <table ta

原创 Stanford Compilers PA1

記錄讀英文文檔的過程 主要爲了自己方便複習回顧 同時希望能幫到你看懂文檔到底在說啥任務到底要怎麼做 如果有錯誤/模糊的地方歡迎指出   每次作業完成一個編譯器的一個部分:詞法分析、語法分析、語義分析、代碼生成 PA1 寫一個詞法分析器 利

原创 7 交易性能優化技術之緩存庫存

交易性能瓶頸 交易驗證完全依賴數據庫 每一次操作 都是用sql語句的形式去數據庫裏讀的 庫存行鎖 所有減庫存操作都是串行進行的 後置處理邏輯 比如增加商品銷量等信息也會影響性能   交易驗證優化 用戶風控策略優化:策略緩存模型化 判斷用

原创 luogu P5018 對稱二叉樹

帶權的二叉樹裏找一棵節點數最多的子樹使得權值和結構都對稱 1e6   這題最主要的點還是計算時間複雜度 剛看到的時候總是覺得每個點都要再往下找 那麼這個複雜度顯然是n方的 但是實際上是 n+n/2+n/2+n/4+n/4+...+1 複雜

原创 10 防刷限流技術

    令牌桶的原理   漏桶算法 區別: 漏桶算法無法應對突發流量 是用來平滑網絡流量以固定的速率流入的操作 令牌桶算法只是限制某一時刻的最大值 應對突發的流量 但是不能超過限定值        

原创 9 流量削峯技術

秒殺令牌 秒殺大閘 隊列泄洪   現在的系統缺陷 接口會被腳本不停的刷新 甚至活動未開始的時候仍然可能刷新這個接口 秒殺驗證邏輯和秒殺下單接口強關聯 代碼冗餘度高 秒殺驗證邏輯複雜 對交易系統產生無關聯負載   缺陷:秒殺令牌只要活動一

原创 8 交易性能優化技術之事務型消息

異步化事務型消息模型 庫存的扣減操作在事務中正常進行 如果減庫存的事務執行失敗則將扣的庫存加回來 在減庫存的事務執行成功之後再發送消息   庫存流水狀態   庫存售罄處理方案 庫存售罄標識 售罄後不去操作後續流程 售罄後通知各系統售罄 回

原创 Coderforces 1279 總結

教育場一題 教訓: 1. 不要總是想着莽過去 ac is ok 當遇到找不到的bug的時候嘗試一下同樣的思路下能否將算法進一步簡化 從而省略中間容易出錯的一些環節 2. 找不到錯的時候邊界值可以多考慮一下 3. ll的敏感度要撿回來  

原创 codeforces 1311

Codeforces Round #624 (Div. 3) 第一次unrated的div3 然而做了一個多小時只做出了A也是迷 B 題意:n個1~100的數字 給定m個位置 這m個位置可以與後面一個元素交換位置 進行任意次操作 能否使數

原创 6 靜態頁面性能優化

CDN的全稱是Content Delivery Network 可以看做無限大的內容磁盤緩存 本身是沒有文件存儲的 當用戶訪問一個資源的時候 根據路由規則查看本地是否存在這樣一個文件 有則直接返回 沒有則返回給原站然後根據一定的規則緩存

原创 4 分佈式擴展

      現在的架構 單機存在容量問題 需要進行水平擴展 表象:單機cpu使用率增高 memory佔用增加 網絡帶寬使用增加 cpu的使用率看 cpu us和cpu sy兩個參數 分別代表用戶空間的CPU使用情況和內核空間的淳樸使

原创 JDBC

步驟 爲項目導入mysql-jdbc的jar包 初始化驅動 通過類加載器將驅動在內存中進行註冊 建立與數據庫的連接 創建Statement 執行SQL語句 關閉連接(finally關鍵字) 或者使用try-with-resour

原创 LeetCode 837 概率dp

昨天pdd的筆試題 最後不想做了想清楚了自己的代碼只滿足了只走一步的情況就沒做了 今天補一下 題意:輸入m a r 該開始在0 每次隨機走1~r步 如果當前小於a就繼續走 求最後位置小於等於m的概率 /** 昨天的代碼1 沒有考