自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 收藏
  • 关注

原创 Mac快捷键

其中,settings.xml从/Users/whq/apache-maven-3.9.4/conf中剪切而来。在home目录下,创建.m2文件夹,该文件夹下包含repository子文件夹和settings.xml文件。(3)键入csrutil disable并按回车键即可禁用SIP,输入reboot以正常重启计算机。重启后在终端输入csrutil status,即可看到disabled,即SIP已被禁用。(1)选取苹果菜单 >“重新启动”,然后立即按住 Command-R。

2023-08-16 11:35:34 1877

原创 Git学习笔记

rebase操作前后,最终的提交内容是一致的,但是,我们本地的commit修改内容已经变化了,它们的修改不再基于d1be385 init hello,而是基于f005ed4 (origin/master) set exit=1(远端他人更新的版本),但最后的提交7e61ed4内容是一致的。因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。合并,合并后的历史有分支,能看出来曾经做过合并,而。

2023-05-06 21:52:01 1584 2

原创 linux传输文件指令

【代码】linux传输文件指令。

2023-04-26 21:22:03 352

原创 Navicat连接Linux系统MySQL

Navicat连接Linux系统MySQL。

2023-03-14 16:30:24 640

原创 【LeetCode】327场周赛记录

两个数组分别存下两个字符串中出现的字符个数,然后模拟交换过程,交换成功则return true,否则恢复现场。

2023-01-08 12:21:24 177

原创 核心代码在本地IDE调试

【代码】核心代码在本地IDE调试。

2022-12-24 00:19:20 281

原创 Chrome浏览器修改用户资料(User Data)的存放位置

该链接创建后,删除文件夹C:\Users\用户名\AppData\Local\Google\Chrome\User Data并不影响"F:\Chrome\User Data",但在文件夹内部操作文件时,两者是同步的。该命令的效果是在C:\Users\用户名\AppData\Local\Google\Chrome\中创建文件夹User Data并指向"F:\Chrome\User Data"。若只希望保存用户的书签、扩展程序等,可注册Google账号,则任意设备登录该账号即可恢复用户数据。

2022-12-14 00:13:30 16924 4

原创 【练习题】数据离散化+二维前缀和

保证100%的数据中,点的数量n

2022-12-12 01:08:56 515

原创 【LeetCode】321c:从链表中移除节点

在本题的单调栈中,栈顶元素小于栈底元素,即递增(若存在递减的逆序对,则逆序对中的后者是多余的)。首先将链表转化为数组来处理较为方便,以及定义好虚拟结点dummy便于处理头结点的情况。类似,考察单调栈,转化为对每个元素求右边第一个比它大的元素。,如果其右侧存在一个具有 严格更大 值的节点,则移除。给你一个链表的头节点。对于列表中的每个节点。返回修改后链表的头节点。

2022-11-27 17:23:51 411

原创 【LeetCode】311d:字符串的前缀分数和

对一个字符串的插入,会依次比对每个字符在树中是否存在,若存在则往下走,若不存在则开一个新的分支。由题意得,所有的字符总数不超过1e6,而1e6个int的空间为4M,取N为1e6,则tr[N][26]为100M左右,空间上是满足的。哈希表超时的原因在于存在重复操作,例如对于字符串"abcd",则前缀“abc”和“abcd”都将遍历一次,每个字符被重复计算,而trier树中,每个字符串中的每个字符都只被计算一次。首先,每个字符串可理解为trier树上的一条路径,每个字符为trier上的一条边,头结点。

2022-09-21 17:39:36 746 2

原创 【LeetCode】310c:将区间分为最少组数

若其左端点小于等于最小的右端点,则说明其与所有分组都有重叠(因为已经按照左端点排序过,则当前区间的左端点大于等于先前区间的左端点),因此将其压入堆,形成新的一组。否则,若当前区间左端点大于堆顶区间的右端点,则不用增加组数,只需要更新该组的右端点,即将堆顶弹出再压入该组修正后的右端点。如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 相交 的。遍历n个区间时,每个区间涉及到堆的push等操作的复杂度为log级别。通过一个小根堆存储每个分组的代表区间的右端点。需要划分成多少个组。

2022-09-12 23:04:53 319

原创 【LeetCode】309c:最长优雅子数组

来表示当前窗口内的各个位上的1的数量,若符合多个数与为0的要求,则每个位置上的1的数量不超过1。其中双指针i一直往前走,j在左边不断维护窗口合法性,若不合法则往右移动,移动结束后j到i这段区间满足要求,每次更新答案(滑动窗口,用状态变量维护窗口内的合法性。由于数的范围在1到10^9,可用31位二进制数来表示状态。每个数的与状态(check()函数),若符合要求则尝试更新。,其中k为以每个位置为结尾的最长优雅数组的平均长度,最好为。的子数组始终视作优雅子数组。中抛弃左边的部分数字,对比。的优雅子数组的长度。

2022-09-12 22:46:53 1439

原创 【LeetCode】309b:恰好移动 k 步到达某一位置的方法数目

为第i步到达位置j的方案数。此处由于k与起点终点的数据范围在1~1000,因此其起点不会小于-500,终点不会大于500,因此将起点终点加500,可映射为数组下标,下标范围在0到1500之间,可以开较大的N = 2010的数组区间。周赛时想到的方法:假设向左移动l次,向右移动r次,那么。在一步移动中,你可以向左或者向右移动一个位置。如果所执行移动的顺序不完全相同,则认为两种方法不同。,因此左移和右移的次数都可以计算出,总的方案数相当于。的 不同 方法数目。接下来由状态转移方程求解。个元素中的排列方法,即。

2022-09-12 22:10:04 438

原创 【LeetCode】308d:给定条件下构造矩阵

而行条件得到的拓扑排序与列条件得到的拓扑排序是可以独立的,可以同时满足。通过行拓扑得到的数组,每个元素在矩阵中的的行位置就是它在该数组中的下标位置,同样地,该元素的列位置就是它在列拓扑排序数组的下标位置。题中所给的约束关系,比如a在b前面,与图论中a存在一条出边连接到b一致,通过构建邻接表和入度,可以得到符合条件的拓扑排序。显然,若答案不存在,则会产生环,那么拓扑排序所得到的数组个数将小于n。每次弹出队头,更新其邻接点的入度(-- g[t])时,共执行了e次。如果不存在答案,返回一个空的矩阵。......

2022-08-28 23:32:01 590

原创 【LeetCode】306c:根据模式串构造最小数字

给你下标从 0 开始、长度为 n 的字符串 pattern ,它包含两种字符,‘I’ 表示 上升 ,‘D’ 表示 下降。如果 pattern[i] == ‘I’ ,那么 num[i] < num[i + 1]。如果 pattern[i] == ‘D’ ,那么 num[i] > num[i + 1]。由数据范围知,答案字符串长度最多为9,长度为9的字符串根据全排列可知共有。num 包含数字 ‘1’ 到 ‘9’ ,其中每个数字 至多 使用一次。函数来求解某一个排列的下一个排列(根据字典序)。...

2022-08-14 23:17:57 462

原创 (‘You must install pydot (`pip install pydot`) and install graphviz...)

Linux下绘制模型结构图出现报错

2022-07-16 11:24:19 1793

原创 【LeetCode】468. 验证IP地址

468. 验证IP地址题目大意思路代码原题链接:468. 验证IP地址题目大意给定一个字符串 queryIP。如果是有效的IPv4地址,返回 "IPv4" ;如果是有效的IPv6地址,返回 "IPv6" ;如果不是上述类型的IP地址,返回 "Neither" 。有效的IPv4地址 是“x1.x2.x3.x4”形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.

2022-05-29 02:15:55 452

原创 【LeetCode】1021. 删除最外层的括号

1021. 删除最外层的括号题目大意思路代码复杂度原题链接:1021. 删除最外层的括号题目大意有效括号字符串为空 “”、“(” + A + “)” 或 A + B ,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,“”,“()”,“(())()” 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 s 非空,且不存在将其拆分为 s = A + B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 s,

2022-05-28 00:25:44 150

原创 【LeetCode】面试题 17.11. 单词距离

面试题 17.11. 单词距离题目大意思路代码复杂度面试题 17.11. 单词距离题目大意有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?示例:输入:words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"输出:1

2022-05-27 00:18:43 136

原创 【LeetCode】699. 掉落的方块

699. 掉落的方块题目大意思路代码复杂度原题链接:699. 掉落的方块题目大意在二维平面上的 x 轴上,放置着一些方块。给你一个二维整数数组 positions ,其中 positions[i] = [lefti, sideLengthi] 表示:第i个方块边长为sideLengthi,其左侧边与 x 轴上坐标点 lefti 对齐。每个方块都从一个比目前所有的落地方块更高的高度掉落而下。方块沿 y 轴负方向下落,直到着陆到 另一个正方形的顶边 或者是 x 轴上 。一个方块仅仅是擦过另一个方块的左

2022-05-26 15:28:02 184

原创 【LeetCode】467. 环绕字符串中唯一的子字符串

467. 环绕字符串中唯一的子字符串题目大意思路代码复杂度原题链接:467. 环绕字符串中唯一的子字符串题目大意把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s 看起来是这样的:“…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd…” .现在给定另一个字符串 p 。返回 s 中 唯一 的 p 的 非空子串 的数量 。示例:输入: p = "a"输出: 1解释: 字符串

2022-05-25 01:55:27 358

原创 【LeetCode】965. 单值二叉树

965. 单值二叉树题目大意思路代码复杂度原题链接:965. 单值二叉树题目大意如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例:数据范围:给定树的节点数范围是 [1, 100]。每个节点的值都是整数,范围为 [0, 99] 。思路取根节点的值,然后开始dfs深度优先遍历该树;若某结点为空,包括根节点为空的情况,则返回true;若某结点的值不等于根节点的值,则返回false;若某结点的值等于跟

2022-05-24 00:33:55 208

原创 【LeetCode】675. 为高尔夫比赛砍树

675. 为高尔夫比赛砍树题目大意思路代码复杂度原题链接:675. 为高尔夫比赛砍树题目大意你被请来给一个要举办高尔夫比赛的树林砍树。树林由一个 m x n 的矩阵表示, 在这个矩阵中:0 表示障碍,无法触碰1 表示地面,可以行走比1大的数 表示有树的单元格,可以行走,数值表示树的高度每一步,你都可以向上、下、左、右四个方向之一移动一个单位,如果你站的地方有一棵树,那么你可以决定是否要砍倒它。你需要按照树的高度从低向高砍掉所有的树,每砍过一颗树,该单元格的值变为 1(即变为地面)。你将从(

2022-05-23 01:04:04 348

原创 【LeetCode】464. 我能赢吗

464. 我能赢吗题目大意思路代码复杂度原题链接:464. 我能赢吗很少做博弈论的题目,看了题解后很受启发,写了点总结。题目大意在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家 不能 重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定两个整数 maxChoosableInte

2022-05-22 17:46:08 301

原创 【LeetCode】961. 在长度 2N 的数组中找出重复 N 次的元素

961. 在长度 2N 的数组中找出重复 N 次的元素题目大意思路代码复杂度961. 在长度 2N 的数组中找出重复 N 次的元素题目大意给你一个整数数组 nums ,该数组具有以下属性:nums.length == 2 * n.nums 包含 n + 1 个 不同的 元素nums 中恰有一个元素重复 n 次找出并返回重复了 n 次的那个元素。示例:输入:nums = [1,2,3,3]输出:3输入:nums = [2,1,2,5,3,2]输出:2输入:nums = [5,1,

2022-05-21 14:07:43 317

原创 【LeetCode】436. 寻找右区间

436. 寻找右区间题目大意思路代码复杂度原题链接:436. 寻找右区间题目大意给你一个区间数组 intervals ,其中 intervals[i] = [starti, endi] ,且每个starti都 不同 。区间 i 的 右侧区间 可以记作区间j,并满足startj >= endi,且startj最小化 。返回一个由每个区间 i 的 右侧区间 的最小起始位置组成的数组。如果某个区间i不存在对应的 右侧区间 ,则下标i处的值设为 -1 。示例:输入:intervals = [[1

2022-05-20 01:04:36 139

原创 【LeetCode】462. 最少移动次数使数组元素相等 II

462. 最少移动次数使数组元素相等 II题目大意思路代码复杂度原题链接:462. 最少移动次数使数组元素相等 II题目大意给你一个长度为n的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加1或者减1。示例:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]输入:nums = [1,10,2,9]

2022-05-20 00:32:25 316

原创 【LeetCode】668. 乘法表中第k小的数

668. 乘法表中第k小的数题目大意思路代码时间复杂度原题链接:668. 乘法表中第k小的数题目大意几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗?给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。例子:输入: m = 3, n = 3, k = 5输出: 3解释: 乘法表:1 2 32 4 63 6 9第5小的数字是 3 (1, 2, 2, 3, 3).输入: m = 2, n = 3, k = 6输出: 6

2022-05-18 01:06:21 216

原创 is与==区别

is与==区别is用来判断两个变量引用对象是否相同;==用来判断两个变量的值是否相同。a is b相当于判断id(a) == id(b),id()函数是python中用来对某个变量做标识的函数,相当于能得到某个变量的内存地址。对于可变对象,应注意其内存地址是否相同;对于不可变对象,应注意python分配的整形池。下面就可以来些实例,了解一下。可变对象a = []b = []print(a == b) # Trueprint(a is b) # False可见两个列表值相同,但其内

2022-05-17 10:49:20 446

原创 【LeetCode】82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II题目大意思路源代码类似题目题目大意给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。示例:数据范围:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列思路思路与83. 删除排序链表中的重复元素相同,区别仅在于该题不保留重复元素p->next=q->next,83保留一个重复元素p->n

2022-05-17 01:39:49 226

原创 【LeetCode】83. 删除排序链表中的重复元素

83. 删除排序链表中的重复元素题目大意思路源代码类似题目题目大意给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例:数据范围:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列思路开一个虚拟头结点dummy,从dummy的下一个节点开始开拓答案链表,利用哨兵检查新结点的重复情况,其中dummy的作用在于兼容头结点head也重复的情况。具体地

2022-05-17 01:32:34 202

原创 【LeetCode】80. 删除有序数组中的重复项 II

80. 删除有序数组中的重复项 II题目大意思路源代码复杂度分析类似题目原题链接:80. 删除有序数组中的重复项 II题目大意给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]输入:nums = [0,0,1,1,1,1,2,3,3]

2022-05-17 00:33:06 99

原创 【LeetCode】26. 删除有序数组中的重复项

2022.05.17题目大意思路代码复杂度分析类似题目题目大意给你一个升序排列的数组nums,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用

2022-05-17 00:22:18 139

原创 sort自定义排序方式

2022.05.14sort()方式1:结构体内重载运算符方式2:cmp参数与优先队列类比Java和python的处理方式Javapythonsort()sort(a.begin(), a.end()); sort(a, a + n); // n为数组长度通常用于数组排序,排序方式为按照元素大小从小到大排序当元素为结构体/pair等类型时,以及需要从大到小排序时,需要自定义。方式1:结构体内重载运算符对于结构体:结构体按照某成员值,从小到大排序:需要在结构体内重载运算符,从小到大重载&lt

2022-05-14 18:12:39 2859 1

原创 常用库函数

2022.05.14reverseuniqueeraserandom_shuffle#include <algorithm>reverse适用于vector或数组#include <iostream>#include <algorithm>#include <vector>using namespace std;const int N = 1010;int main(){ // vector vector<int> c

2022-05-14 17:40:55 244

原创 常用STL

2022.05.14vectorqueuemapbitsetpairvector#include <iostream>#include <vector>using namespace std;int main(){ vector<int> whq = {1, 2, 3}; cout << whq[1] << endl; // 2 支持随机访问 whq.push_back(4); cout << whq.size(

2022-05-14 17:17:58 139

原创 链表基础(C++)

2022.05.14链表的遍历添加结点链表删除链表空节点链表的遍历#include <iostream>#include <string.h>using namespace std;const int N = 1010;struct Node{ int val; Node* next; Node(int _val):val(_val), next(NULL){} };int main(){// Node node = Node(1);//

2022-05-14 16:00:47 249

原创 python绘图-中文字体

需要首先下载所需字体黑体:simhei.ttf宋体:SimSun.ttf# 黑体from matplotlib import pyplot as pltfrom matplotlib.font_manager import FontProperties# 在此设置字体及大小font = FontProperties(fname=r"./simhei.ttf", size=14) plt.figure()plt.xlabel(u'x轴', FontProperties=font)plt

2022-05-13 23:38:55 3215 1

原创 指针与引用

2022.05.13取地址指针数组与指针指针运算引用取地址#include <iostream>using namespace std;char a, b;string aa;int main(){ char c, d; cout << (void*)&c << endl; cout << (void*)&d << endl; cout << (void*)&a << en

2022-05-13 20:30:08 285

原创 类与结构体简单记录

2022.05.13类结构体test类#include <iostream>using namespace std;class Person{ private: // 只能在类里调用 无private的话对于成员变量,class默认是private,结构体默认为public int age, height; double money; string books[100]; public: // 可在外部调用 string name;

2022-05-13 18:13:51 144

空空如也

空空如也

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

TA关注的人

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