自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Mybatis

目录介绍架构接口层-与数据库操作方式数据处理层介绍用来操作数据库的持久层框架, 通过xml和简单注解来执行数据库的增删改查操作架构接口层-与数据库操作方式使用传统的MyBatis提供的API通过操控sqlSession对象, 根据传入的statement id 和 查询参数 来对数据库进行增删改查的操作, 这种方式不符合面向接口编程习惯使用Mapper接口将xml中<mapper>抽象为java 接口中的方法, <mapper>节点的CRUD对应着操作数

2021-05-30 21:54:21 179

原创 leetcode-刷题顺序推荐

题目分类及刷题顺序推荐一. 数组题目分类 题目编号数组的遍历 485、495、414、628统计数组中的元素 645、697、448、442、41、274数组的改变、移动 453、665、283二维数组及滚动数组 118、119、661、598、419数组的旋转 189、396特定顺序遍历二维数组 54、59、498二维数组变换 566、48、73、289前缀和数组 303、304、238题解 数组篇二. 字符串题目分类

2021-02-25 22:27:55 659

原创 Vue学习

目录MVVM模式语法双向绑定组件生命周期计算属性slot插槽自定义事件webpack学习router路由小知识MVVM模式有了MVVM后可以动态修改页面元素语法var vm = new Vue({ el: "#标签id", data: {数据}, methods: { xxx: function() { xxxxxxxx } }});v-bind: 绑定, 让标签某个属性的值和vue对象中一致 v-bind:href=“xxx” xxx从vue中取

2021-02-08 22:30:02 120

原创 Docker学习

目录介绍Docker命令帮助命令镜像命令容器命令常用其他命令Docker Run流程Docker底层原理介绍容器化和虚拟化差别docker为什么那么快docker组成Docker命令启动docker: systemctl docker start帮助命令docker info // 显示docker系统信息, 包括镜像和容器docker version // 显示docker版本信息docker 命令 --help镜像命令容器命令退出容器e

2021-01-06 00:07:47 170 2

原创 Nginx学习笔记

目录介绍什么是反向代理?负载均衡动静分离常用命令Nginx配置文件实例反向代理反向代理II负载均衡动静分离Nginx高可用Nginx原理介绍Nginx一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强主要有3个特性:反向代理, 负载均衡, 动静分离什么是反向代理?正向代理访问外网时,先访问特定的服务器,让后该服务器才去访问我们想要的资源反向代理外部访问的时候,先访问反向代理服务器,然后该反向代理服务器再转发请求而这个中转服务器就是反向代理负载均衡外部访问

2021-01-04 22:32:51 78

原创 LeetCode-数组

目录53. 最大子序和53. 最大子序和思路添加一个负数的子序列肯定比原来的更小了那么如果 序列和 和新来的数 加起来 <= 新来的数那么子序列可以直接从这个 新来的数开始public int maxSubArray(int[] nums) { int sum = 0; int max = Integer.MIN_VALUE; for (int i = 0; i < nums.length; i++) { if (sum + nums[i] <= nu

2020-12-24 00:52:55 53

原创 LeetCode-刷题索引

目录1. LeetCode-栈篇2. LeetCode-排序篇3. LeetCode-排序篇4. LeetCode-二叉树5.LeetCode-动态规划6.LeetCode-字符串7.LeetCode-滑动窗口8.LeetCode-回溯9.LeetCode-二分搜索10.LeetCode-买卖股票问题11.LeetCode-打家劫舍12.LeetCode-并查集13.LeetCode-前缀和 & Hash14.LeetCode-BFS15.LeetCode-BFS16

2020-08-23 10:08:01 151

原创 LeetCode-位运算

目录137. 只出现一次的数字 II260. 只出现一次的数字 III421. 数组中两个数的最大异或值137. 只出现一次的数字 II思路开辟一个32容量数组, 然后逐位计算个数 然后 % 3public int singleNumber(int[] nums) { int[] bitTag = new int[32]; for (int nm : nums) { // 对每个数 计算bit位的值

2020-08-23 09:57:00 81

原创 LeetCode-差分

目录1094. 拼车1109. 航班预订统计1094. 拼车思路因为上车下车先后是固定的, 那么可以用差分法在特定时间上车就+人数, 下车就-人数那么计算, 如果出现 > capacity 就是falsebool carPooling(vector<vector<int>>& trips, int capacity) { vector<int> vt(1001, 0); for (int i = 0; i < tr

2020-08-11 00:19:24 1037

原创 LeetCode-BFS

目录139. 单词拆分127. 单词接龙139. 单词拆分思路BFS固定一位起点start, 然后end向右判断是否[start, end) 是不是wordDict里面的, 如果是, end进队列public boolean wordBreak(String s, List<String> wordDict) { Queue<Integer> queue = new LinkedList<>(); queue.offer(0

2020-08-11 00:19:00 71

原创 LeetCode-前缀和 & Hash

目录什么是前缀和560.和为k的子数组523. 连续的子数组和什么是前缀和PreSum[i] = nums[i] + nums[i - 1] +…+ nums[1] 表示i的前缀和前缀和数组对连续子数组求和问题基本上都能用上。560.和为k的子数组思路pre[i] = pre[i − 1] + nums[ i ]A[i] + A[i+1] +… A[j] = B[i] - B[j - 1]那么令A[i] + A[i+1] +… A[j]这个子数组和为 k 这个条件我们可以转化为

2020-08-03 00:17:53 213

原创 LeetCode-并查集

目录关于并查集547.朋友圈684.冗余连接关于并查集为了解释并查集的原理,我将举一个更有爱的例子。 话说江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”,只要是能通过朋友关系串联起来的,不管拐了多少个弯,都认为是自己人。这样一来,江湖上就形成了一个一个的群落,通过两两之间的朋友关系串联起来。而不在同一个群落的人,无论如何都无法通过

2020-07-31 00:01:31 171

原创 LeetCode-打家劫舍

目录198.打家劫舍198.打家劫舍思路状态和选择问题, index就是状态, 抢与不抢就是选择int rob(vector<int>& nums) { if (nums.size() == 0) return 0; vector<int> dp(nums.size() + 1, 0); dp[0] = 0; //0间房子 dp[1] = nums[0]; //1间房子 for (

2020-07-28 00:19:42 84

原创 LeetCode-买卖股票问题

目录股票题前言状态转移框架121. 买卖股票的最佳时机122.买卖股票的最佳时机II714. 买卖股票的最佳时机含手续费309. 最佳买卖股票时机含冷冻期123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV股票题前言此题是k = 2利用「状态」进行穷举。我们具体到每一天,看看总共有几种可能的「状态」,再找出每个「状态」对应的「选择. 我们要穷举所有「状态」,穷举的目的是根据对应的「选择」更新状态for 状态1 in 状态1的所有取值: for 状态2 in 状态

2020-07-26 23:04:01 142

原创 LeetCode-二分搜索

目录二分搜索区间问题基本二分搜索左边界二分右边界二分34. 在排序数组中查找元素的第一个和最后一个位置二分搜索区间问题建议的 范围内都是闭区间用else if 不用 else基本二分搜索因为我们初始化 right = nums.length - 1所以决定了我们的「搜索区间」是 [left, right]所以决定了 while (left <= right)同时也决定了 left = mid+1 和 right = mid-1因为我们只需找到一个 target 的索引即可

2020-07-26 11:57:35 78

原创 LeetCode-回溯

目录回溯46.全排列回溯回溯的核心是result = []//func1def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return//func2 for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择46.全排列思路首先用一个vt记录已经选了什么, 然后在选择列表中寻找还未选的,当已选和选择列

2020-07-23 00:13:24 81

原创 LeetCode-滑动窗口

目录前言3.无重复字符的最长子串76.最小覆盖子串438.找到字符串中所有字母异位词前言滑动窗口的套路化/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (char c : t) need[c]++; int left = 0, right = 0; int valid = 0; while (r

2020-07-19 23:54:58 168

原创 LeetCode-字符串

目录758.字符串中加粗单词758.字符串中加粗单词给定一个关键词集合 words 和一个字符串 S,将所有 S 中出现的关键词加粗。所有在标签 和 中的字母都会加粗。返回的字符串需要使用尽可能少的标签,当然标签应形成有效的组合。例如,给定 words = [“ab”, “bc”] 和 S = “aabcd”,需要返回 “a<b>abc</b>d”。注意返回 “a<b>a<b>b</b>c</b>d” 会使用更多的标签,因

2020-07-18 15:55:12 529

原创 LeetCode-动态规划

目录264. 丑数 II313.超级丑数264. 丑数 II编写一个程序,找出第 n 个丑数。丑数就是质因数只包含 2, 3, 5 的正整数。思路1个丑数也只能是从2,3,5中衍生出来动态规划: 一个数字可以拆分成若干因子之积,那么我们也可以使用不同因子去构造这个数定义三个指针 p2、p3、p5 分别乘以 2、3、5 的数字dp[i] 表示第 i 个丑数。那么 dp[p2] * 2、dp[p3] * 3 和 dp[p5] * 5 中的最小值就是下一个丑数。小顶堆:将计算后的全部加

2020-06-18 18:39:57 116

原创 Linux学习

目录第二章Linux命令常用系统命令系统状态检测命令工作目录切换命令文本编辑命令文件目录管理命令打包压缩和搜索命令第二章Linux命令常用系统命令echo : 相当于cout,在终端上输出data : 获取当前系统时间reboot :重启powoff : 关闭系统wget : 从终端中下载网络文件ps : 查看系统进程top :相当于任务管理器, 查看进程运行状态pidof : 查看某个进程的ipdkill : 杀死某个pid进程killall : 终止某个服务对应的进程系统状

2020-06-09 11:47:19 228

原创 LeetCode-二叉树篇

目录101.对称二叉树101.对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。   1   /  \  2     2  /  \   /   \3    4 4    3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:  1 /  \ 2    2 \     \ 3     3思路DFS法1:镜像则是当前节点值相同,每个树的左子树与另一个树的右子树相同,右子树

2020-05-31 00:28:31 254

原创 C++ 内存对齐

目录内存对齐 #pragma pack()用法内存对齐 #pragma pack()用法什么是对齐 : 现代计算机中内存空间是按照byte划分,对类型的访问不能从任意位置开始, 访问特定变量要在特定内存地址访问,需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。.然而不同硬件平台上对储存空间处理不同, 有些平台特定类型只能在特定地址上开始存取, 有些则是偶地址开始存放, 如果是偶数只需一次读出, 奇数则要两次,而且还要对高低位字节进行拼凑, 造成了效率损失.

2020-05-29 00:40:29 107

原创 LeetCode-排序篇

这里写目录标题1086.前五科的平均分数252.会议室1086.前五科的平均分数给你一个不同学生的分数列表,请按 学生的 id 顺序 返回每个学生最高的五科 成绩的 平均分。对于每条 items[i] 记录, items[i][0] 为学生的 id,items[i][1] 为学生的分数。平均分请采用整数除法计算。思路先按学号从小到大排序,学号相同则按分数大到小排序static bool compare(vector<int> &a, vector<int>

2020-05-17 17:47:15 370

原创 读Effective C++ 笔记

目录第一章三级目录第一章三级目录

2020-05-14 09:37:19 124

原创 LeetCode-栈篇

LeetCode439.三元表达式解析器功能快捷键439.三元表达式解析器给定一个以字符串表示的任意嵌套的三元表达式,计算表达式的值。你可以假定给定的表达式始终都是有效的并且只包含数字 0-9, ?, :, T 和 F (T 和 F 分别表示真和假)。示例:输入: “T?2:3”输出: “2”解释: 如果条件为真,结果为 2;否则,结果为 3。利用栈,反方向输入字符串,当遇到?的时候,先往前读取T/F, 然后从栈中取出true和false的结果, 然后根据读取的T/F重新选择压入结果

2020-05-12 17:28:07 350

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