自定义博客皮肤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 205

原创 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 155

原创 vimrc

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

2021-05-07 10:41:20 166

原创 redis源码

set get expire、过期删除策略 复制 sentinel 集群 cluster 事物

2021-03-09 01:02:02 224

原创 剑指 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 125

原创 剑指 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 88 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 80

原创 剑指 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 118 1

原创 phxpaxos ubuntu 编译脚本

https://github.com/Tencent/phxpaxos 直接运行脚本,自动下载编译 #!/bin/bash set -e set -v git clone --recursive https://github.com/tencent-wechat/phxpaxos.git cd phxpaxos ROOT_DIR=`pwd` #automake autoconf cd $ROOT_DIR/third_party wget http://ftp.gnu.org/gnu/a.

2020-11-02 12:33:48 178

原创 spring ioc 源码阅读

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

2020-09-21 15:27:23 201

原创 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 205

原创 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 102

原创 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 125

原创 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 104

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

https://leetcode-cn.com/problems/single-number/ 只出现一次的数字,使用异或,可以达到时间O(N),复杂度O(1)。 a^b^a=a class 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 82

原创 LeetCode 437. 路径总和 III

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

2020-08-03 20:32:57 120

原创 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 144

原创 java工作要求总结

Java:集合、多线程、NIO、序列化 JDK源码 netty jvm调优:内存模型、类加载机制 Spring、SpringBoot、MyBatis MySQL:查询优化,事务、锁、并发实现机制 mongodb Nginx dubbo、Zookeeper docker HTTP协议 缓存:redis 消息队列:kafka 面向对象 ...

2020-06-15 13:11:00 222

原创 spring ioc DefaultListableBeanFactory类结构解析

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

2020-06-11 16:44:23 349

原创 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 236

原创 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 354

原创 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 287

原创 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 below select 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 101

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

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

2020-04-29 00:08:04 99

原创 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 108

原创 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 142

原创 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 81

原创 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 93

原创 LeetCode 148. 排序链表

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

2020-04-28 10:26:53 97

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

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

2020-04-27 22:32:46 163

原创 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 110

原创 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 122

原创 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 113

原创 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 141

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

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

2016-03-25

空空如也

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

TA关注的人

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