自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(251)
  • 资源 (1)
  • 收藏
  • 关注

原创 spring mvc源码

初始化tomcat会读取web.xml,从里面获取servlet class得到DispatcherServlet,父类是HttpServlet,有doget,dopost,传入request,传出response。tomcat在开始的时候会调用HttpServlet的init方法,子类重写这个方法。FrameworkServlet继承HttpServlet,增加WebApplicationContext。DispatcherServlet继承FrameworkServlet,增加HandlerMap

2021-11-07 14:12:11 203

原创 394. 字符串解码

https://leetcode-cn.com/problems/decode-string/1.全局小标2.两种模式3.']'处理。如果一个新开的decode的第一个字符是],说明不属于这一层的,直接返回。class Solution {public: int i; string s; int get_digit(int i,int j,string s){ int sum=0; for(int k=i;k<=j;k+

2021-08-31 23:20:13 151

原创 vimrc

set nunnoremap * :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>au BufReadPost * exe("norm g`\"")set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8set tabsto.

2021-05-07 10:41:20 165

原创 redis源码

setgetexpire、过期删除策略复制sentinel集群cluster事物

2021-03-09 01:02:02 223

原创 剑指 Offer 05. 替换空格

https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/submissions/原地遍历的话,首先需要计算最终的长度。然后从后到前遍历。class Solution {public: string replaceSpace(string s) { int cnt=0; for(int i=0;i<s.size();i++){ if(s[i]==' ')

2020-12-29 00:03:16 124

原创 剑指 Offer 04. 二维数组中的查找

https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/选择右上角的,就能每次都排除一行或者一列class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int n=matrix.size(); if(n==0)

2020-12-28 23:53:14 87 1

原创 剑指 Offer 40. 最小的k个数

https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/submissions/class Solution {public: void topk(int start,int end,int k,vector<int>& arr){ if(start>=end) return; int l=start; int r=end;

2020-12-28 23:03:37 79

原创 剑指 Offer 57 - II. 和为s的连续正数序列

https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/submissions/class Solution {public: vector<vector<int>> findContinuousSequence(int target) { int l=1,r=2; vector<vector<int>> ans;.

2020-12-28 22:18:04 117 1

原创 phxpaxos ubuntu 编译脚本

https://github.com/Tencent/phxpaxos直接运行脚本,自动下载编译#!/bin/bashset -eset -vgit clone --recursive https://github.com/tencent-wechat/phxpaxos.gitcd phxpaxosROOT_DIR=`pwd`#automake autoconfcd $ROOT_DIR/third_partywget http://ftp.gnu.org/gnu/a.

2020-11-02 12:33:48 155

原创 spring ioc 源码阅读

阅读框架源码最好的方式,是通过一个小例子,看代码的执行顺序,这样比较容易理解过程。如果是上来就直接看某个重要类的实现,估计会迷失在代码里,这段代码用来干什么的?这个类用来干什么的?这个有什么用?东西太多了啊,类太多了啊!使用idea,f4进入函数实现或者变量定义,以及返回,以及ctrl+f12看类的函数列表。所以,先从一个ioc例子看代码。代码在https://github.com/geneRocket/spring-ioc-aop void test_ioc() { Resource

2020-09-21 15:27:23 200

原创 LeetCode 5502. 将子数组重新排序得到同一个二叉查找树的方案数

https://leetcode-cn.com/problems/number-of-ways-to-reorder-array-to-get-same-bst/组合+递归1.按照特定顺序插入,第一个节点就是根节点,后面的插入的都在根节点下面,所以无论怎么排序,第一个总是不变的。2.后面的可以分成两半,小于根节点的和大于根节点的,这两个集合互不影响,都是分别往根节点左边或根节点右边插入,所以只用考虑一个集合内的相对顺序。3.考虑左集合或右集合,就是递归了4.首先从后面的位置(左集合..

2020-08-30 17:56:49 204

原创 LeetCode 5497. 查找大小为 M 的最新分组

https://leetcode-cn.com/problems/find-latest-group-of-size-m/端点到区间的映射,有一个关键是,左右端点相同的时候,更改区间的一端的时候,不要删除原来的索引,因为还有另一个端点还在用。struct Node{ int l; int r; int size(){ return r-l+1; }};class Solution {public: int findLate..

2020-08-23 17:39:05 101

原创 LeetCode 5495. 圆形赛道上经过次数最多的扇区

https://leetcode-cn.com/problems/most-visited-sector-in-a-circular-track/位置的模拟,[开始位置,结束位置],然后从下一个位置开始。由于旋转,而且从1开始,直接写规则返回相比取余更加方便。由于包括结束位置,计数器加一后再判断是否要终止,由于需要从下一个位置开始,所以需要保存flag后对位置加1再退出。struct Node{ int pos; int cnt;};bool operato..

2020-08-23 17:34:26 124

原创 LeetCode 5481. 得到目标数组的最少函数调用次数

https://leetcode-cn.com/problems/minimum-numbers-of-function-calls-to-make-target-array/怎样才是最少次数呢,操作有对一个元素加1,对所有元素乘2。数组所有元素从0开始。反过来思考,对于一个奇数,它的操作是肯定是减1,不可能除2。对于一个偶数,可以减1也可以除2,显然除2比减1的次数更少。除2是对整个数组操作,这就要求所有都是偶数。所以就是奇数变成偶数,除2。不断重复。使用0的计数器。class..

2020-08-23 15:04:42 127

原创 LeetCode 5482. 二维网格图中探测环

https://leetcode-cn.com/problems/detect-cycles-in-2d-grid/dfs深搜找环,关键有两个优化地方:1.路径中只要包含环就可以,不一定要回到最开始搜索的节点2.如果一个点不在一个环中,那么后续搜索可以忽略这个节点,因为是多余的。如果不使用第一个优化,一定要回到最开始的搜索地方,那么第二个优化的地方只能排除最开始的节点,这样会超时,所以两个优化要同时使用class Solution {public: i..

2020-08-23 14:54:28 238

原创 LeetCode 206. 反转链表

https://leetcode-cn.com/problems/reverse-linked-list/这道题是我2017.11月底的时候百度面试的题。以两个节点为单位,一个前面的节点,一个后面的节点。开始的时候比较特殊,因为是后一个节点指向前一个节点,同时最后翻转的链表的尾部是NULL,所以一开始前面的节点是NULL。需要临时保存第三个节点的指针。/** * Definition for singly-linked list. * struct ListNode { * .

2020-08-04 10:27:19 103

原创 LeetCode 136. 只出现一次的数字

https://leetcode-cn.com/problems/single-number/只出现一次的数字,使用异或,可以达到时间O(N),复杂度O(1)。a^b^a=aclass Solution {public: int singleNumber(vector<int>& nums) { int a=0; int n=nums.size(); for(int i=0;i<n;i++){ ..

2020-08-04 10:05:42 81

原创 LeetCode 437. 路径总和 III

https://leetcode-cn.com/problems/path-sum-iii/

2020-08-03 20:32:57 119

原创 LeetCode 283. 移动零

https://leetcode-cn.com/problems/move-zeroes/双指针,快慢指针class Solution {public: void moveZeroes(vector<int>& nums) { int p=0; int q=0; int n=nums.size(); while(q<n){ if(nums[q]!=0){ ...

2020-08-02 16:18:52 106

原创 LeetCode 448. 找到所有数组中消失的数字

https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/版本1先排序,后遍历。遍历的时候记录期望的数字,如果遇到的等于期望的数字,则通过。如果遇到的数字大于期望的数字,则说明有间隔,将这段间隔记录到结果里面。class Solution {public: vector<int> findDisappearedNumbers(vector<int>&am..

2020-08-02 15:48:37 143

原创 java工作要求总结

Java:集合、多线程、NIO、序列化JDK源码nettyjvm调优:内存模型、类加载机制Spring、SpringBoot、MyBatisMySQL:查询优化,事务、锁、并发实现机制mongodbNginxdubbo、ZookeeperdockerHTTP协议缓存:redis消息队列:kafka面向对象...

2020-06-15 13:11:00 221

原创 spring ioc DefaultListableBeanFactory类结构解析

环境配置git clone https://github.com/spring-projects/spring-framework安装jdk8gradle build,https://github.com/spring-projects/spring-framework/wiki/Build-from-Sourceidea打开,https://github.com/spring-proj...

2020-06-11 16:44:23 348

原创 leetcode 5419. 两个子序列的最大点积

https://leetcode-cn.com/problems/max-dot-product-of-two-subsequences/dfs枚举版本,超时。参数状态包括 之前的最大和,以及两个位置。sum是sum+nums1[i]*nums2[j]。转换为动态规划的时候,dp[i][j],是包括两个最后结束位置i,j的值的点乘的。所以答案要不停的记住最大值。class Solution {public: int ans=-0x3f3f3f3f; int .

2020-05-24 15:12:55 235

原创 5407. 切披萨的方案数

https://leetcode-cn.com/problems/number-of-ways-of-cutting-a-pizza/最后留一块也要符合要求、要求披萨全部用完,以在倒数第二块的时候判断return。class Solution {public: int n,m; long long count=0; int K; vector<string> pizza; int record[55][55][15]; int m.

2020-05-10 20:35:53 351

原创 leetcode 5403. 有序矩阵中的第 k 个最小数组和

https://leetcode-cn.com/problems/find-the-kth-smallest-sum-of-a-matrix-with-sorted-rows/submissions/枚举,中途记录前k个最小和,遍历每行,把当前行的元素都加到上一行的前k个最小和,然后排序取前k个最小和。这关键的核心是,可以按行拆分,本行的k个最小和肯定来自上一行的k个最小和,因为如果...

2020-05-03 22:08:59 286

原创 leetcode 5402. 绝对差不超过限制的最长连续子数组

https://leetcode-cn.com/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/同时维护两个队列,都是从旧到新,分别从大到小和从小到大。最左边的就是最大值和最小值。如果差值大于limit,则弹出最左的。要记录区间的最左端,弹出的时候更新最左端。c...

2020-05-03 14:34:23 157

原创 LeetCode 185. 部门工资前三高的所有员工

https://leetcode-cn.com/problems/department-top-three-salaries/这个是在where里求排名来筛选。# Write your MySQL query statement belowselect d.Name as 'Department', e1.Name as 'Employee', e1.S...

2020-04-30 00:07:53 148

原创 leetcode 234. 回文链表

https://leetcode-cn.com/problems/palindrome-linked-list/没啥难度的一道题,关键是处理好长度奇数偶数的问题、以及快慢指针要准确切一半的初始化、结束判断。栈先把值放进去,比较方便,【1,2】这样的链表,如果是在循环里面放,就进不了循环没放进去栈里。快慢指针先初始为1和2,然后判断next是否为空来判断是否最后一个。长度奇数的值...

2020-04-29 12:23:47 100

原创 leetcode 581. 最短无序连续子数组

https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/找出后面有比这个数字小的最左数字,前面有比这个数字大的最右数字。要从两个方向跑,因为栈会弹出数字,后面可能会有比这个弹出数字小的数字,弹出了就找不到了。class Solution {public: int findUnsorte...

2020-04-29 00:08:04 98

原创 leetcode 39. 组合总和

https://leetcode-cn.com/problems/combination-sum/一个数字可以重复使用多次,用的时候dfs下标不用加1,这样可以用多次,加上大于target剪枝,也不会用太多。不用的时候下标要加1。class Solution {public: vector<int> run; vector<vector<in...

2020-04-28 22:17:37 107

原创 leetcode 48. 旋转图像

https://leetcode-cn.com/problems/rotate-image/submissions/由外层向内层遍历,每层都是一个正方形的四边。每条边需要更换len-1个。逆时针更换,最开始的存在temp里。class Solution {public: void rotate(vector<vector<int>>& mat...

2020-04-28 17:16:55 140

原创 leetcode 238. 除自身以外数组的乘积

https://leetcode-cn.com/problems/product-of-array-except-self/这种需要左边、右边连续区间的计算结果的,可以先从左到右和从右到左计算一遍,同时存起来。这样不用每个都计算左右区间的结果。class Solution {public: vector<int> productExceptSelf(vector...

2020-04-28 15:43:53 80

原创 leetcode 96. 不同的二叉搜索树

https://leetcode-cn.com/problems/unique-binary-search-trees/一棵树n个节点,根节点一个,剩下n-1个,左右子树分, 数量从0到n-1,然后乘起来,因为是步骤。class Solution {public: int numTrees(int n) { int dp[n+1]; mems...

2020-04-28 12:05:13 92

原创 LeetCode 148. 排序链表

https://leetcode-cn.com/problems/sort-list/链表排序用递归归并排序,复杂度nlognsplit链表和插入链表有一个dummy头结点方便很多。sortlist后记得重新赋值返回的头节点。/** * Definition for singly-linked list. * struct ListNode { * int...

2020-04-28 10:26:53 96

原创 leetcode 406. 根据身高重建队列

https://leetcode-cn.com/problems/queue-reconstruction-by-height/大的看不到前面小的,所以在大的插入小的,不影响。先按照身高从大到小、位置从前到后排序。然后插入到结果当中,当前结果的都是大于等于当前数字的,插入后不会影响已经插入的结果,同理,以后插入的也不会影响现在的结果,所以插入到现在的位置k。多次插入使用链表,使用a...

2020-04-27 22:32:46 161

原创 leetcode 142. 环形链表 II 287. 寻找重复数

https://leetcode-cn.com/problems/linked-list-cycle-ii/https://leetcode-cn.com/problems/find-the-duplicate-number/第一道题是环形链表第二道题,每一个数字可以看作是next下标,有一个重复数字,所以可以看作是链表有环。/** * Definition...

2020-04-27 20:45:49 136

原创 leetcode 215. 数组中的第K个最大元素

https://leetcode-cn.com/problems/kth-largest-element-in-an-array/关键在于枢纽元的选择上,不能选择第一个,不然很慢。class Solution {public: void quick(int l,int r,int k,vector<int>& nums){ if(l&gt...

2020-04-27 11:57:34 103

原创 LeetCode 236. 二叉树的最近公共祖先

https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/递归实现最近公共祖先,函数返回该子树是否包含p,q。有两种情况,1.p、q在同一条路径上,所以需要找到了p或者q继续向下查找,找到了了的话最近公共祖先就是这个。2.p,q在两条支路上,那么最近公共祖先的左右子树各包含pq。/** * De...

2020-04-27 11:38:33 121

原创 leetcode 49. 字母异位词分组

https://leetcode-cn.com/problems/group-anagrams/实际上是一个字符计数的比较问题。先从字符数量,然后从字符按照顺序的大小,以及该字符的数量来比较。bool operator<( map<char,int> &a, map<char,int> &b){ if(a.size()!=b.si...

2020-04-27 09:53:45 112

原创 LeetCode 337. 打家劫舍 III

https://leetcode-cn.com/problems/house-robber-iii/枚举,最元素的位置可能隔两层,所以不是贪心。树形dp其实就是同时返回两个结果,免得对同一个节点调用两次,免得对一个节点重复调用,使得后面出现重复。/** * Definition for a binary tree node. * struct TreeNode { * ...

2020-04-26 22:17:27 140

基于QT的五子棋 人人对战 人机对战 程序与程序对战

基于QT的五子棋 人人对战 人机对战 程序与程序对战

2016-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除