原创 【leetCode】231_滑動窗口最大值

class Solution { public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { deque<int> dq; v

原创 【HDU】2544_最短路

Dijkstra /* ID : LANG: C++11 TASK: maze1 */ #include <iostream> #include <cstring> #define NN 105 using namespace s

原创 【leetCode】48_旋轉圖像

class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); for (i

原创 【leetCode】28_實現strStr()

主要是回顧一下kmp算法。 kmp分兩個步驟,1,找next數組;2,匹配。 kmp之所以困惑的重要原因就在於,不知道找next數組的時候實在幹什麼。 這裏用一句話說明白:找next[i],其實是在找,使得pattern[0:k)==pa

原创 【leetCode】37_解數獨

和8皇后完全一樣。 class Solution { public: void solveSudoku(vector<vector<char>>& board) { dfs(board); }

原创 SSH暴力破解預防

原文鏈接:https://blog.csdn.net/z13615480737/article/details/83028304 日,自己的server碰到個傻子暴力破解我的ssh,只好借鑑了一

原创 Flask工廠模式下與Celery的結合

本文主要解決的問題是Celery依賴Flask的appcontext,但是在Flask工廠模式下會出現循環import的問題。   在工廠函數取得flask app的後邊加一句,一共兩句。 flask_app = create_app(

原创 【leetCode】42_接雨水

傳統stack。還有更快的辦法是:掃描出各個點左右的最高牆,從而得到該點的水柱高度。加總。 class Solution { public: int trap(vector<int>& height) { typ

原创 【leetCode】33_搜索旋轉排序數組

算是對二分的強化練習吧,第一種辦法是先二分找到旋轉點,再分別在兩段內二分,看了別人的覺得這樣更簡潔。 簡單談一下二分:二分需要注意的是,mid賦值給left和right的時候,其實是判定mid是否是left子集或者right子集元素的過程

原创 【leetCode】135_分發糖果

class Solution { public: int candy(vector<int>& ratings) { int sum = 0; vector<int> candies;

原创 【leetCode】134_加油站

class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int left_oil = 0;

原创 【leetCode】14_最長公共前綴

class Solution { public: string longestCommonPrefix(vector<string>& strs) { string ans; if (strs.s

原创 【leetCode】18_四數之和

雙指針法。 class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<

原创 【leetCode】44_通配符匹配

dp: class Solution { public: bool isMatch(string s, string p) { //tag 用於dp,tag[i][j]代表s的子串s[0,i-1] 可以匹配 p的