自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (11)
  • 收藏
  • 关注

原创 zookeeper笔记

leader收到超过半数的ack后,认为消息发送成功,于是再向所有follower广播commit消息,同时自身也完成事务提交,follower接收到commit消息后,会将上一条事务提交。发给follower流程如下:c1给s2发写入请求,s2没有写入权限,s2会把写入请求转给s1,s1写入后,再给s2发写入请求,s2写入成功后,给s1发ack确认。议长对议员说,兄弟们投我一票,议员对议长说,没问题,兄弟们支持你。s1是 (1,8,1),s2是 (1,8,2),s3是 (1,7,4)

2022-10-03 16:51:52 702

原创 mybatis笔记

mybatis整体把握

2022-09-07 16:56:51 221

原创 powerMock教程

写用例的时候,最关键的一点。弄清楚你的数据结构里有什么,要做什么。凭感觉写代码是不靠谱的。看似节省时间,实际最后花时间的还是自己。老老实实弄清楚要做的,有针对性的解决问题。不要因为别人的push就方寸大乱。网上的powerMock教程。https://blog.csdn.net/weixin_34873494/article/details/111953887https://blog.csdn.net/knighttools/article/details/44630975...

2021-08-27 00:22:22 205

原创 单词拆分想法

class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { unordered_set<string> wordDictSet(wordDict.begin(), wordDict.end()); vector<bool> dp(s.size() + 1, false); dp[0] = true;

2021-07-12 17:38:08 74

原创 复制带随机指针的链表

/*// Definition for a Node.class Node {public: int val; Node* next; Node* random; Node(int _val) { val = _val; next = NULL; random = NULL; }};*/class Solution {public: map<Node*, Node*> mp;

2021-07-08 20:46:27 46

原创 老师分发糖果

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2:输入:[1,2,2]输出:4解释:你可以分别给这三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,

2021-07-02 11:18:28 102

原创 克隆图(递归方法)

/*// Definition for a Node.class Node {public: int val; vector<Node*> neighbors; Node() { val = 0; neighbors = vector<Node*>(); } Node(int _val) { val = _val; neighbors = vector<Node*&gt

2021-06-22 20:38:45 55

原创 分割回文串 II

class Solution {public: int minCut(string s) { int sLen = s.length(); vector<vector<bool>> dp(sLen, vector<bool>(sLen, false)); for (int j = 0; j < sLen; ++j) { for (int i = j; i >= 0; --i)

2021-06-17 20:06:38 77

原创 被围绕的区域

class Solution {public: int m; int n; bool flag; vector<vector<bool>> isVisit; set<pair<int, int>> hasVisitO; void Dfs(int i, int j, vector<vector<char>>& board) { if (i < 0 |

2021-06-17 16:55:27 68

原创 最长连续序列

class Solution {public: int longestConsecutive(vector<int>& nums) { if (nums.size() == 0) { return 0; } sort(nums.begin(), nums.end()); // 保证循环内一定能找到结果 nums.emplace_back(INT_MAX);

2021-06-17 11:27:33 55

原创 单词接龙 II

按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> … -> sk 这样的单词序列,并满足:每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词 si(1 <= i <= k)必须是字典 wordList 中的单词。注意,beginWord 不必是字典 wordList 中的单词。sk == endWord给你两个单词 beginWor

2021-06-16 11:56:22 80

原创 二叉树中的最大路径和

路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。这道题用直接的想法,把每个节点都当做根节点,用一个全局变量记录最大值。注意返回给上一层的值只能包含一侧的分支。/** * Definition for a binary tree node. * struct TreeNode { *

2021-06-15 16:27:03 102

原创 Spring Boot打Jar包,读取resource

首先在pom.xml中添加如下的插件<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include>

2021-06-02 10:15:47 454

买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1

2021-05-31 17:36:07 54

原创 填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例:输入:root = [1,2,3,4,5,6,7]输出:[1,#,2,3,#,4

2021-05-31 11:53:25 81

原创 二维数组操作指南

今天突然遇到一个很恶心的问题,如果我想把二位数组作为函数参数传递到函数参数中,应该怎么办?好吧,用下面的代码就行// 利用数组是顺序存储的特性, 通过降维来访问原数组! void print_c(int *a, int n, int m) { int i, j; for(i = 0; i < n; i++) { for(j = 0;

2021-05-28 15:09:41 54

原创 树状数组基本使用

树状数组(Binary Index Tree, BIT)是很多OIer心中最简洁优美的数据结构之一。最简单的树状数组支持两种操作,时间复杂度均为 :单点修改:更改数组中一个元素的值区间查询:查询一个区间内所有元素的和树状数组就是这样一种结构,它巧妙地利用了二进制(实际上,树状数组的英文名BIT,直译过来就是二进制下标树)。那么如何更新呢,大家会发现更新就是一个“爬树”的过程。一路往上更新,直到MAXN(树状数组的容量)。树状数组的实现前面已经讲得很详细了,代码实现倒是一件简单的事了。不过我

2021-05-27 11:08:30 198

原创 并查集玩法

并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。处于同一集合的元素会组合成一颗树。最常见的问题是我的朋友的朋友 是 我的朋友。// 初始化的数据结构,下标表示元素,值表示该元素的父节点vector<int> fa(n, 0);for (int i = 0; i < n; ++i) { f

2021-05-25 19:34:42 46

原创 盒中取球

盒中有n个小球,A,B两人轮流取。约定:每个人从盒中取的球数必须是1,3,7,8。A、B轮流取球,直到取完。拿到最后一个球就算输。A先手,给定球数,在两人都不失误时,判断A最终是否能赢?球数 < 10000.刚看到这道题,突然想到一个BGM buttercup。取最后一个球的倒霉蛋拿到球是多么绝望o(╥﹏╥)o。动态规划,想办法让剩下的球朝着向自己有利的方向发展。#include<vector>int main(){ vector<int> dp(10000

2021-05-24 16:22:07 543

原创 不同的子序列

给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)示例 1:输入:s = “rabbbit”, t = “rabbit”输出:3解释:如下图所示, 有 3 种可以从 s 中得到 “rabbit” 的方案。(上箭头符号 ^ 表示选取的字母)rabbbit^^^^ ^^rabbbit^

2021-05-23 17:02:47 85

转载 重构笔记

https://blog.csdn.net/pistolove/article/details/42679983

2021-05-11 22:42:45 49

原创 C++的多线程

https://blog.csdn.net/ouyangfushu/article/details/80199140

2021-05-08 15:17:53 69

转载 C++11花括号初始化

C++11之前主要有以下几种初始化方式://小括号初始化string str("hello"); //等号初始化string str="hello"; //POD对象与POD数组列表初始化struct Studnet{ char* name; int age;};Studnet s={"dablelv",18}; //纯数据(Plain of Data,POD)类型对象Studnet sArr[]={{"dablelv",18},{"tommy",19}}; //P

2021-05-08 09:35:40 3268

原创 const和11中的constexpr

我们知道,constexpr 是 C++ 11 标准新添加的关键字,在此之前(C++ 98/03标准)只有 const 关键字,其在实际使用中经常会表现出两种不同的语义。举个例子:#include <iostream>#include <array>using namespace std;void dis_1(const int x){ //错误,x是只读的变量 array <int,x> myarr{1,2,3,4,5}; cout &l

2021-05-07 17:21:25 53

原创 C++11新特性全部讲解

突然发现了一个好网站!http://c.biancheng.net/view/7918.html

2021-05-07 17:18:09 84

转载 C++11之内联的命名空间

C++11标准中,可以在父命名空间中定义内联的子命名空间,内联的子命名空间可以把其包含的名字导入到父命名空间中,从而在父命名空间中可以直接访问子命名空间中定义的名字,而不用通过域限定符Child::name的形式来访问。例如下面的代码:namespace Parent{ namespace Child1 { struct child1_data{int a;} ; } namespace Child2 { struct chil

2021-05-07 15:06:29 172

转载 白盒测试逻辑覆盖法

看新定的测试覆盖率标准,有点晕。1、语句覆盖率达到100%2、分支覆盖率不低于70%开始觉得,这两个限制有点矛盾,语句覆盖率都达到100%了,分支覆盖率还没达到100%?答案:是。举个例子说明:if A and B then Action1if C or D then Action2就拿这个来说,A=true B=true C=true,语句覆盖率是100%,可分支覆盖率是50%,并没有走false的分支。从而引发一个理解,分支并不一定是实际的代码,而是逻辑上的分支,而分支覆盖率并不是指的是对实

2021-05-07 12:04:57 1621

原创 C++中的lambda与函数对象

lambda表达式是C++11中引入的一项新技术,利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象,并且使代码更可读。但是从本质上来讲,lambda表达式只是一种语法糖,因为所有其能完成的工作都可以用其它稍微复杂的代码来实现。但是它简便的语法却给C++带来了深远的影响。如果从广义上说,lambda表达式产生的是函数对象。函数对象的本质上是一个类而不是一个函数,在类中,对象重载了函数调用运算符(),从而使对象能够项函数一样被调用,我们称这些对象为函数对象(Function Obje

2021-05-07 11:45:17 334

原创 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。其实也很好想,都告诉先序遍历了。所以每次遍历到一个节点,先把当前节点的左右子树存下来做递归。然后上一个节点的right 指向当前节点。再更新最新的插入节点。然后把当前root的左右子树置为null。/** * Definition for a binary tree n

2021-05-05 18:11:44 39

原创 判断是否是平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。很简单,后序遍历,逐层累加。然后做判断。class Solution {public: bool flag = true; int Recursion(TreeNode* root) { if (!flag) { return -1; } if (roo

2021-05-04 17:06:29 41

原创 小孩子的天真

最近五一放假,回家小休。恰好姨姨家一年级大的小女孩来我家小住。几件事情很有意思。我正在看电脑,临近中午到了该吃饭的时候,小女孩拿着一个猕猴桃干悄悄推开我房间的门,可怜巴巴的说:哥哥吃饭了,说着还把猕猴桃干递给我,不知为啥,当时居然还有一丝小感动。我苦笑着说了声谢谢。其他家人叫我吃饭的时候完全没有这种感觉。被惯坏了?child is angel? I don’t know。爸爸牙疼,小女孩在家待着无聊,于是带着小女孩去医院买些牙疼药。因为今天晚上7点就要回上海了。估计老爸在路上和小女孩说晚上要送我去火车站

2021-05-04 15:50:57 202 1

原创 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:思路也很简单,前序遍历的第一个元素一定是根元素,然后在中序遍历中找到该元素的下标。下标左边的一定是左子树,下标右边的一定是右子树。然后用递归搞定!/** * Definition for a binary tree node. * struct TreeNode {

2021-05-03 11:37:25 64

转载 二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],返回其层序遍历结果:[[3],[9,20],[15,7]]其实很简单,中序遍历即可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;

2021-05-03 10:28:28 58

原创 极致的游戏体验

昨天和好久不见的朋友吃饭,K歌。听听大家讲最近的境况。才发现真的是长大了,开始讨论“大人”的话题了。然后又好怀念高中在学校时的感觉。但内心知道回不去了。我越来越觉得有几个真心相交的朋友真的是一件美好的事情。在外面待一段时间后,回来和老友聚一聚,各自说说最近的境况,感受。心里总是感到很温暖。我又有另一种感觉,人生就像一场游戏,也有其特定的规则。做一件新的事情相当于开启一个新的副本,其实这个游戏还是相对公平的,会给每个人机会体验整个过程。那么,如何获得极致的游戏体验呢?太早享受所有游戏内容也不太好,很容易对

2021-05-03 09:27:36 151

原创 maven基础2

使用mvnw我们使用Maven时,基本上只会用到mvn这一个命令。有些童鞋可能听说过mvnw,这个是啥?类似于gradlew。mvnw是Maven Wrapper的缩写。因为我们安装Maven时,默认情况下,系统所有项目都会使用全局安装的这个Maven版本。但是,对于某些项目来说,它可能必须使用某个特定的Maven版本,这个时候,就可以使用Maven Wrapper,它可以负责给这个特定的项目安装指定版本的Maven,而其他项目不受影响。简单地说,Maven Wrapper就是给一个项目提供一个独立的

2021-04-29 11:42:09 71

原创 人注定无法赚到认知之外的钱

以前我还对这个不屑一顾。直到最近,接连卖飞金域医学和公牛集团,我才深深的知道,凭运气赚的钱,最终都会还回去。必须要形成一套自己的投资体系,才能得到好的结果。金域医学:两个月时间最大回撤达到18%,昨天刚回本的时候卖掉,今天又暴涨5%公牛集团:两个月时间最大回撤达到14%,昨天出财报,一片看衰。还亏7个点,今天挂涨8个点卖。开盘直接拉涨停。哈哈。反思一下:稀里糊涂买的,稀里糊涂卖掉。盈亏全凭运气。没啥怨言。值得反思的点就是E大的网格交易策略真牛逼。如果两只股都按那个策略的话,肯定有的玩。还有是交易随缘

2021-04-29 10:09:28 98

原创 React基础4

非受控组件点击登录后,alert用户名和密码。这里的数据是现用现取的,属于非受控组件。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>1_非受控组件</title></head><body> <!-- 准备好一个“容器” --> <div id="test"></div>

2021-04-28 16:04:41 88

原创 验证二叉搜索树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。其实很简单,二叉搜索树对任意一个节点,左边的一定更小,右边的一定更大。所以中序遍历一定是一个升序数列。然后写代码!/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode

2021-04-23 11:46:12 48

原创 根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people = [[7,0],[4,4],[7

2021-04-22 17:23:24 41

原创 交错字符串

给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + … + snt = t1 + t2 + … + tm|n - m| <= 1交错 是 s1 + t1 + s2 + t2 + s3 + t3 + … 或者 t1 + s1 + t2 + s2 + t3 + s3 + …提示:a + b 意味着字符串 a 和 b 连接。示例1

2021-04-22 15:07:45 56

mybatis学习资料.rar

mybatis学习资

2021-08-28

junit库用法464654

junit库用法464654

2021-08-12

java中的多线程笔记

java中的多线程笔记

2021-07-08

mysql笔记.rar

mysql基础知识,超级全

2021-07-07

git相关学习笔记值得

git相关学习笔记

2021-06-15

linux笔记相关vim命令

linux笔记相关vim命令

2021-06-07

React资料配合B站尚硅谷教程

React资料配合B站尚硅谷教程

2021-04-19

Snipaste超级好用的截图软件

Snipaste超级好用的截图软件

2021-04-09

Dev编程软件.rar

出淤泥而不染,濯清涟而不妖。

2021-04-03

C++刷题相关.rar

C++刷题的一些资料,快速入门C++语法,走向人生巅峰。

2021-04-03

C++语法速查资料.rar

学习C++语法

2021-04-03

空空如也

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

TA关注的人

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