自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李威威的博客

快乐生活每一天!

  • 博客(577)
  • 资源 (2)
  • 收藏
  • 关注

原创 写对二分查找不是套模板并往里面填空,需要仔细分析题意

这个问题我已经回答在题目求助|二分查找不同实现方法细节困惑。我再补充一下:不管是哪一种模板,都不会回答看到的mid在某种条件下,mid的值是否可以取到;下一轮搜索是在mid的左边还是右边继续查找。「模板一」告诉你全部把mid排除掉,用ans做补救,保证不会错过答案,「模板三」告诉你全部把mid保留,退出循环以后里剩下两个数,再单独判断一下。它们有「限制死的地方」,所以一定要再理解清楚题意的情况下,正确使用。这些模板没有好坏和优劣之分,它们背后解决问题的思想是一样的。

2023-06-08 09:48:43 870

原创 spring-boot-devtools 热部署(三个步骤完成)

项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obta

2021-11-14 15:56:01 501

原创 SCP 命令实验

SCP 命令参考资料:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/scp.html上传:上传文件scp /Users/liweiwei1419/app/nacos-server-1.4.1.tar.gz [email protected]:/opt上传文件夹scp -r /Users/liweiwei1419/Downloads/2-基本命令 [email protected]:/opt下载:1. 把

2021-11-05 03:03:59 581

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

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

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

原创 题解 | 「力扣」第 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 538

原创 为什么有一些二分查找取 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 2696 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 1964

原创 「力扣」第 90 题:子集 II(中等)题解

基于交换的排序算法1、选择排序借本题练习一下十大排序算法,本题解还在继续更新中。会补充复杂度分析,复杂度分析一直是我比较头疼的一个模块。选择排序参考代码 1:说明:以下 Python3 代码超时。import java.util.ArrayList;import java.util.List;public class Solution { public List<...

2021-03-31 10:50:51 442

原创 哈夫曼编码(笔记)

“越来越好”是歌唱家宋祖英的一首歌曲,这首歌我唱得还不错,“越来越好”也是我的一位很重要的朋友以前对我说的一句鼓励的话,我一直记着。公众号的开篇就用“越来越好”作为标题吧,不知道以后还会不会继续写,还能写点什么。从 2017 年 5 月开始,我就不上班了,确实把自己封闭了很长时间。这两年多发生了很多事情。在这里,我列一个清单:1、在工作技能上,我开始学习了 Python、算法与数据结构、网络爬...

2021-01-26 12:51:43 336

原创 信息熵 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 6954

原创 「力扣」第 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 522

原创 理解「时间复杂度」需要「动态」去看它

源代码: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 446 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 486

原创 「力扣」第 4 题:两个排序数组的中位数(困难)

说明:这篇题解是我原来在准备视频题解的时候写的题解,目前来看已经没有什么用了,所以发布在这里,留一个备份。视频题解请在官方题解观看,或者在 B 站 观看。二分查找经典问题:第 4 题:两个排序数组的中位数这一节,我们来看一个非常经典且常见的问题,这道题是「力扣」第 4 号问题:寻找两个有序数组的中位数。这道题的题意十分简单,题目中给出两个已经排好序的数组,让我们求出这两个有序数组的中位数,请注意,不是让我们分别求出两个数组的中位数,而是要我们求出,两个有序数组合并成一个有序数组以后的中位数。这道题

2020-07-16 17:41:51 1593

原创 「力扣」第 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 366

原创 「力扣」第 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 334

原创 「力扣」第 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 375

原创 「力扣」第 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 407

原创 「力扣」第 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 358 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 485 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 366

原创 「线段树」第 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 339

原创 「线段树」第 3 节:创建线段树与区间查询

根据原始数组创建线段树这一节的目标是:我们把员工的信息输入一棵线段树,让这棵线段树组织出领导架构。即已知 data 数组,要把 tree 数组构建出来。分析递归结构,重点体会:二叉树每做一次分支都是「一分为二」进行的,因此线段树是一棵二叉树;递归到底的时候,这个区间只有 111 个元素。设计私有函数,我们需要考虑:我们要创建的线段树的根结点的下标,这个下标是线段树的下标;对于线段树结点所要表示的 data 数组的区间的左端点是什么;对于线段树结点所要表示的 data 数组的区间的右端点是

2020-06-26 04:33:25 376

原创 「线段树」第 2 节:写出预处理数组的结构

由于「线段树」是平衡二叉树,因此可以使用数组表示以前我们学习过「堆」,知道「堆」是一棵「完全二叉树」,因此「堆」可以用数组表示。基于此,我们很自然地想到可以用数组表示「线段树」;完全二叉树的定义:除了最后一层以外,其余各层的结点数达到最大,并且最后一层所有的结点都连续地、集中地存储在最左边;线段树虽然不是完全二叉树,但线段树是平衡二叉树,依然也可以用数组表示。如何构建线段树、如何实现区间查询、如何实现区间更新「自顶向下」递归构建线段树首先看看「线段树」长什么样;线段树是一种二叉树结构,不

2020-06-26 04:12:52 383

原创 「线段树」第 1 节:线段树是原始数组的一个预处理数组

线段树(segment tree)又称「区间树」,是一个高级数据结构,应用的对象是「数组」;线段树是一种实现了高效的「区间查询」与「区间更新」的数据结构。前置知识:理解「前缀和」数组preSum[i] 表示 nums[0..i - 1] 里全部元素的和(一个数代表了原始数组的一个前缀区间的和);前缀和数组,就是一堆前缀和,可以用于:快速计算区间和(查询区间和 );区间 [i..j] 的和: preSum[j + 1] - preSum[i]。「前缀和数组」与「线段树」都是原始.

2020-06-26 03:49:52 413

原创 「树状数组」第 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 316

原创 「树状数组」第 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 2310 2

原创 「树状数组」第 2 节:理解预处理数组 C

「树状数组」第 2 节:理解预处理数组 C我们看看树状数组长什么样。树状数组的样子例 5我们以一个有 8 个元素的数组 A 为例(如上图),在数组 A 之上建立一个数组 C,使得数组 C 的形成如上的一个多叉树形状,数组 C 就形成了一个树状数组的结构。以下是两点说明:树状数组要建成动态的树形结构吗?不用。学习过堆、线段树的朋友一定知道,使用数组就能方便地索引左右孩子结点、双亲结点(因为规律特别容易找到),这样的树就不必创建成结点、指针那样的动态树形结构。如何解释「前缀和」查询和

2020-06-26 02:37:41 477

原创 「树状数组」第 1 节:树状数组能解决的问题

关键词:位运算、前缀和的查询与更新。第 1 节 树状数组能解决的问题![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTM1NDE3Mi8xNTkzMTA4MDAzNjYyLTU5MzkwNTdhLWFkY2ItNDNlYi04ZjVjLWIzN2QxYjQwMjEyNi5wbmc?x-oss-process=image/format,png#align=left

2020-06-26 02:10:47 702

原创 「力扣」第 787 题:K 站中转内最便宜的航班(深度优先遍历、广度优先遍历)

方法一:深度优先遍历(回溯算法)说明:航班没有重复,且不存在环路;每个航班的价格范围是 [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 686

原创 「力扣」第 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 459 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 333

原创 「力扣」第 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 386

原创 「力扣」第 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 421

原创 「力扣」第 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 466

原创 「力扣」第 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 456

原创 「力扣」第 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 350

原创 「力扣」第 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 477

Eclipse插件之MyBatisLink

使用说明:Eclipse插件——MyBatisLink_百度经验 http://jingyan.baidu.com/article/922554468e2d6a851648f402.html

2015-03-28

myeclipse-svn-site-1.6.16.zip

该插件适用于MyEclipse8.6,欢迎下载使用,交流心得。

2013-09-27

空空如也

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

TA关注的人

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