- 博客(576)
- 资源 (2)
- 收藏
- 关注
原创 spring-boot-devtools 热部署(三个步骤完成)
项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obta
2021-11-14 15:56:01
310
原创 SCP 命令实验
SCP 命令参考资料:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/scp.html上传:上传文件scp /Users/liweiwei1419/app/nacos-server-1.4.1.tar.gz root@192.168.47.128:/opt上传文件夹scp -r /Users/liweiwei1419/Downloads/2-基本命令 root@192.168.47.128:/opt下载:1. 把
2021-11-05 03:03:59
363
原创 Ubuntu 18.04 SSH 无法远程登录问题
Ubuntu 18.04 SSH 无法远程登录问题Ubuntu 系统默认 root 用户是不能登录的,密码也是空的。给 root 用户设置密码:sudo passwd root解决 Ubuntu 18.04 SSH 无法远程登录问题1、安装 openssh-serversudo apt-get install openssh-server2、编辑配置文件 /etc/ssh/sshd_configsudo vi /etc/ssh/sshd_config禁用:PermitRootLog
2021-11-04 21:29:00
2359
原创 IDEA 集成虚拟机中的 Docker
参考资料:https://zhuanlan.zhihu.com/p/125680010https://www.cnblogs.com/haoxianrui/p/14088400.html1、查看 docker 文件在哪里systemctl show --property=FragmentPath docker控制台显示:FragmentPath=/lib/systemd/system/docker.service2、 whereis dockerd控制台显示:dockerd: /us
2021-11-03 13:23:17
467
原创 MySQL 创建用户、授权、允许客户端远程登录命令
创建用户以下代码创建的用户只能在本地登录和访问:create user 'wiki'@'localhost' identified by '123456';可以远程访问create user 'wiki'@'%' identified by '123456';flush privileges;授权只允许本地grant all privileges on wiki.* to 'wiki'@'localhost';允许远程grant all privileges on
2021-11-02 14:05:46
379
原创 题解 | 「力扣」第 413 题:等差数列划分(中等、滑动窗口、动态规划)
「力扣」第 413 题:等差数列划分(中等)题目链接:等差数列划分题解链接:如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1, 3, 5, 7, 9]、[7, 7, 7, 7] 和 [3, -1, -5, -9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。子数组 是数组中的一个连续序列。示例 1:输入:nums = [1, 2, 3, 4]输出:3解释:nums 中有三个子等差数
2021-08-12 17:21:55
348
原创 为什么有一些二分查找取 mid 的时候要加 1
为什么有一些二分查找取 mid 的时候要加 1以「力扣」第 69 题:x 的平方根为例。题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。数据范围:0 <= x <= 2^31 - 1这道问题的
2021-08-01 10:34:30
1879
1
原创 「力扣」第 1673 题:找出最具竞争力的子序列(栈)
「力扣」第 1673 题:找出最具竞争力的子序列(栈)给你一个整数数组 nums 和一个正整数 k ,返回长度为 k 且最具 竞争力 的 nums 子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列 a 和子序列 b 第一个不相同的位置上,如果 a 中的数字小于 b 中对应的数字,那么我们称子序列 a 比子序列 b(相同长度下)更具 竞争力 。 例如,[1,3,4] 比 [1,3,5] 更具竞争力,在第一个不相同的位置,也就是最后一个位置上, 4 小于 5 。示例 1:
2021-08-01 09:33:37
1401
原创 「力扣」第 90 题:子集 II(中等)题解
基于交换的排序算法1、选择排序借本题练习一下十大排序算法,本题解还在继续更新中。会补充复杂度分析,复杂度分析一直是我比较头疼的一个模块。选择排序参考代码 1:说明:以下 Python3 代码超时。import java.util.ArrayList;import java.util.List;public class Solution { public List<...
2021-03-31 10:50:51
320
原创 哈夫曼编码(笔记)
“越来越好”是歌唱家宋祖英的一首歌曲,这首歌我唱得还不错,“越来越好”也是我的一位很重要的朋友以前对我说的一句鼓励的话,我一直记着。公众号的开篇就用“越来越好”作为标题吧,不知道以后还会不会继续写,还能写点什么。从 2017 年 5 月开始,我就不上班了,确实把自己封闭了很长时间。这两年多发生了很多事情。在这里,我列一个清单:1、在工作技能上,我开始学习了 Python、算法与数据结构、网络爬...
2021-01-26 12:51:43
307
原创 信息熵 H(x) 的取值范围
地址:https://leetcode-cn.com/problems/profitable-schemes/帮派里有 G 名成员,他们可能犯下各种各样的罪行。第 i 种犯罪会产生 profit[i] 的利润,它要求 group[i] 名成员共同参与。让我们把这些犯罪的任何子集称为盈利计划,该计划至少产生 P 的利润。有多少种方案可以选择?因为答案很大,所以返回它模 10^9 + 7 的值...
2021-01-26 12:41:17
4879
原创 「力扣」第 529 题:扫雷游戏(中等)
其实就是找连通分量的问题,使用 DFS 或者 BFS 均可。方法一:深度优先遍历M 地雷E 还未挖出的空方块B 已经挖出的空方块public class Solution { /** * 相邻关系规定为:8 个方向 */ private int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}, {1, 1}, {-1, -1}, {1, -1}, {-1, 1}}; private int ro
2020-10-27 16:36:29
446
原创 理解「时间复杂度」需要「动态」去看它
源代码:Python 代码:import matplotlibimport matplotlib.pyplot as pltimport numpy as npn = 100x = np.arange(1, n + 1)y1 = [np.log2(i) for i in range(1, x.size + 1)]y2 = [1 for _ in range(1, x.size + 1)]y3 = [i * np.log2(i) for i in range(1, x.size + .
2020-07-29 17:01:05
403
2
原创 「力扣」第 114 题:二叉树展开为链表(中等)
题目链接Java 代码:class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}public class Solution { private TreeNode parent; public void flatten(TreeNode root) { if (root == null).
2020-07-18 11:15:46
419
原创 「力扣」第 4 题:两个排序数组的中位数(困难)
说明:这篇题解是我原来在准备视频题解的时候写的题解,目前来看已经没有什么用了,所以发布在这里,留一个备份。视频题解请在官方题解观看,或者在 B 站 观看。二分查找经典问题:第 4 题:两个排序数组的中位数这一节,我们来看一个非常经典且常见的问题,这道题是「力扣」第 4 号问题:寻找两个有序数组的中位数。这道题的题意十分简单,题目中给出两个已经排好序的数组,让我们求出这两个有序数组的中位数,请注意,不是让我们分别求出两个数组的中位数,而是要我们求出,两个有序数组合并成一个有序数组以后的中位数。这道题
2020-07-16 17:41:51
1250
原创 「力扣」第 96 题:不同的二叉搜索树
题目链接方法一:动态规划这里 j 表示左子树的元素个数,最小是 0 ,最大是 i - 1。注意:这里 000 个结点构成的子树的个数为 111,这个值是我们需要的,因此需要多开 111 个空间。Java 代码:public class Solution { public int numTrees(int n) { int[] dp = new int[n + 1]; // 想清楚这个值很关键 dp[0] = 1; dp.
2020-07-15 09:38:42
301
原创 「力扣」第 162 题:寻找峰值(中等)
题目链接说明:数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。Java 代码:public class Solution { public int findPeakElement(int[] nums) { int len = nums.length; int left = 0; int right = len - 1; // [left, right] while (left < r.
2020-07-15 04:38:24
282
原创 「力扣」第 350 题:两个数组的交集 II (简单)
题目链接Java 代码:import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Solution { public int[] intersect(int[] nums1, int[] nums2) { Arrays.sort(nums1); Arrays.sort(nums2); int i = 0; .
2020-07-15 04:02:44
313
原创 「力扣」第 120 题: 三角形最小路径和(中等)
「力扣」第 120 题: 三角形最小路径和(中等)掌握如何定义「状态」和写出「状态转移方程」。链接给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。思路分析:关键的地方在于三角
2020-07-14 10:18:20
322
原创 「力扣」第 30 场双周赛代码(前 3 题)
第 1 题:转变日期格式Java 代码:import java.util.HashMap;import java.util.Map;public class Solution { public String reformatDate(String date) { String[] split = date.split(" "); StringBuilder stringBuilder = new StringBuilder(); stri
2020-07-12 09:52:11
299
4
原创 「力扣」第 195 场周赛代码(前 2 题)
比赛时间:北京时间 2020 年 6 月 28 日早 10:30再接再厉!第 1 题:判断路径是否相交Java 代码:import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Objects;import java.util.Set;public class Solution { public boolean isPathCrossing(String path
2020-06-28 16:32:56
444
6
原创 「力扣」第 29 场双周赛代码(前 3 题)
比赛时间:北京时间 2020 年 6 月 27 日晚 10:30再接再厉!第 1 题:https://leetcode-cn.com/problems/average-salary-excluding-the-minimum-and-maximum-salary/Java 代码:public class Solution { public double average(int[] salary) { int len = salary.length; dou
2020-06-28 16:28:58
336
原创 「线段树」第 4 节:区间更新(单点更新)
区间更新(单点更新)想一想更新的步骤,根据画图分析。从树的根开始更新,先把数据更新了,再更新 tree。set方法 的设计与实现,其实是程式化的,这个过程熟悉了以后写起来,就会比较自然。最后不要忘记 merge 一下,从叶子结点开始,父辈结点,祖辈结点,直到根结点都要更新。Java 代码:public void set(int dataIndex, E val) { if (dataIndex < 0 || dataIndex >= data.length) { t
2020-06-26 04:39:56
315
原创 「线段树」第 3 节:创建线段树与区间查询
根据原始数组创建线段树这一节的目标是:我们把员工的信息输入一棵线段树,让这棵线段树组织出领导架构。即已知 data 数组,要把 tree 数组构建出来。分析递归结构,重点体会:二叉树每做一次分支都是「一分为二」进行的,因此线段树是一棵二叉树;递归到底的时候,这个区间只有 111 个元素。设计私有函数,我们需要考虑:我们要创建的线段树的根结点的下标,这个下标是线段树的下标;对于线段树结点所要表示的 data 数组的区间的左端点是什么;对于线段树结点所要表示的 data 数组的区间的右端点是
2020-06-26 04:33:25
343
原创 「线段树」第 2 节:写出预处理数组的结构
由于「线段树」是平衡二叉树,因此可以使用数组表示以前我们学习过「堆」,知道「堆」是一棵「完全二叉树」,因此「堆」可以用数组表示。基于此,我们很自然地想到可以用数组表示「线段树」;完全二叉树的定义:除了最后一层以外,其余各层的结点数达到最大,并且最后一层所有的结点都连续地、集中地存储在最左边;线段树虽然不是完全二叉树,但线段树是平衡二叉树,依然也可以用数组表示。如何构建线段树、如何实现区间查询、如何实现区间更新「自顶向下」递归构建线段树首先看看「线段树」长什么样;线段树是一种二叉树结构,不
2020-06-26 04:12:52
357
原创 「线段树」第 1 节:线段树是原始数组的一个预处理数组
线段树(segment tree)又称「区间树」,是一个高级数据结构,应用的对象是「数组」;线段树是一种实现了高效的「区间查询」与「区间更新」的数据结构。前置知识:理解「前缀和」数组preSum[i] 表示 nums[0..i - 1] 里全部元素的和(一个数代表了原始数组的一个前缀区间的和);前缀和数组,就是一堆前缀和,可以用于:快速计算区间和(查询区间和 );区间 [i..j] 的和: preSum[j + 1] - preSum[i]。「前缀和数组」与「线段树」都是原始.
2020-06-26 03:49:52
376
原创 「树状数组」第 4 节: 相关例题
其实下面这两个问题本质上是一个问题。例 1:《剑指 Offer 》第 51 题:逆序数的计算剑指 Offer 51. 数组中的逆序对。在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。样例输入:[1,2,3,4,5,6,0]输出:6分析:这道题最经典的思路是使用分治法计算,不过使用树状数组语义更清晰一些。Python 代码:class Solution(object): def inversePa
2020-06-26 03:00:29
279
原创 「树状数组」第 3 节:理解 lowbit 操作
下面我们介绍一种很酷的操作,叫做 lowbit ,它可以高效地计算 2k2^k2k,即我们要证明:lowbit(i)=2k{\rm lowbit}(i) = 2^klowbit(i)=2k其中 kkk 是将 iii 表示成二进制以后,从右向左数,遇到 111 则停止时,数出的 000 的个数。通过 lowbit 高效计算 2k2^k2klowbit(i) = i & (-i)理解这行伪代码需要一些二进制和位运算的知识作为铺垫。首先,我们知道负数的二进制表示为:相应正数的二进制表示的
2020-06-26 02:53:59
1821
2
原创 「树状数组」第 2 节:理解预处理数组 C
「树状数组」第 2 节:理解预处理数组 C我们看看树状数组长什么样。树状数组的样子例 5我们以一个有 8 个元素的数组 A 为例(如上图),在数组 A 之上建立一个数组 C,使得数组 C 的形成如上的一个多叉树形状,数组 C 就形成了一个树状数组的结构。以下是两点说明:树状数组要建成动态的树形结构吗?不用。学习过堆、线段树的朋友一定知道,使用数组就能方便地索引左右孩子结点、双亲结点(因为规律特别容易找到),这样的树就不必创建成结点、指针那样的动态树形结构。如何解释「前缀和」查询和
2020-06-26 02:37:41
379
原创 「树状数组」第 1 节:树状数组能解决的问题
关键词:位运算、前缀和的查询与更新。第 1 节 树状数组能解决的问题
方法一:深度优先遍历(回溯算法)说明:航班没有重复,且不存在环路;每个航班的价格范围是 [1, 10000]。Java 代码:public class Solution { public int findCheapestPrice(int n, int[][] flights, int src, int dst, int K) { // 构建邻接矩阵 int[][] graph = new int[n][n]; for (int[] f
2020-06-15 14:13:04
609
原创 「力扣」第 193 场周赛前 3 题代码(照例不做第 4 题)
说明:第 4 题不做是因为超纲不会做,本人非科班,没有时间去研究第 4 题。第 193 场周赛地址:https://leetcode-cn.com/contest/weekly-contest-193/第 1 题:一维数组的动态和一句话题解:其实就是求前缀和,注意有 1 个位置的下标偏移。题目链接:https://leetcode-cn.com/problems/running-sum-of-1d-array/Java 代码:import java.util.Arrays;pu
2020-06-14 13:45:02
425
2
原创 「力扣」第 380 题:常数时间插入、删除和获取随机元素(哈希表、动态数组)
Java 代码:import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class RandomizedSet { /** * 动态数组 */ List<Integer> nums; /** * 用来建立每个数字和其在数组中的位置之间的对应关系 * key :真正插入的数
2020-06-12 17:01:11
279
原创 「力扣」第 127 题:单词接龙(BFS)
Java 代码:import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Set;public class Solution { // 非标准 BFS 的写法 public int
2020-06-01 16:36:08
338
原创 「力扣」第 1465 题:切割后面积最大的蛋糕(区间和)
说明:标签是乱起的。中文地址:https://leetcode-cn.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/英文地址:https://leetcode.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/思路:找出最长的「长」和「宽」即可,注意边界条件和调试。
2020-05-31 16:23:35
352
原创 「力扣」第 5409 题:检查一个字符串是否包含所有长度为 K 的二进制子串(滑动窗口、位运算、哈希表)
Java 代码:import java.util.HashSet;import java.util.Set;public class Solution { public boolean hasAllCodes(String s, int k) { int len = s.length(); if (len < k) { return false; } char[] charArray = s.t
2020-05-31 00:01:19
422
原创 「力扣」第 973 题:最接近原点的 K 个点(优先队列)
「力扣」第 973 题:最接近原点的 K 个点(优先队列)链接:https://leetcode-cn.com/problems/k-closest-points-to-origin/Java 代码:import java.util.Arrays;import java.util.PriorityQueue;public class Solution { public int[][] kClosest(int[][] points, int K) { int len
2020-05-30 16:15:56
373
原创 「力扣」第 394 题:字符串解码(栈)
地址:https://leetcode-cn.com/problems/decode-string/Java 代码:import java.util.ArrayDeque;import java.util.Deque;public class Solution { public String decodeString(String s) { char[] charArray = s.toCharArray(); // 保存重复几次的栈 D
2020-05-28 09:03:43
275
原创 「力扣」第 886 题:可能的二分法(图、DFS)
地址:https://leetcode-cn.com/problems/possible-bipartition/Java 代码:import java.util.ArrayList;import java.util.List;public class Solution { private int[] colors; private List<Integer>[] adj; private boolean[] visited; public bool
2020-05-28 08:44:55
403
原创 「力扣」第 785 题:判断二分图(DFS)
Java 代码:public class Solution { private boolean[] visited; private int[] colors; private int[][] graph; public boolean isBipartite(int[][] graph) { this.graph = graph; // 图中顶点的个数 int V = graph.length; /
2020-05-28 00:02:00
242
Eclipse插件之MyBatisLink
2015-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人