自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣算法练习BM64——最小花费爬楼梯

给定一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用,下标从0开始。3.当下标为2时,比较从走一步或两步到当前位置的花费,找出最小值存入数组中,并返回花费的数值。复制说明:你将从下标为1的台阶开始,支付5 ,向上爬两个台阶,到达楼梯顶部。数据范围:数组长度满足 1≤n≤105 ,数组中的值满足1≤costi​≤104。2.可以选择从下标为0或1的台阶开始爬楼梯,所以当下标为0或1花费0、你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

2023-12-26 11:19:06 405

原创 力扣算法练习BM71——最小上升子序列

所谓子序列,指一个数组删掉一些数(也可以不删)之后,形成的新数组。例如 [1,5,3,7,3] 数组,其子序列有:[1,3,3]、[7] 等。但 [1,6]、[1,3,5] 则不是它的子序列。3.对数组进行遍历,从第二位开始遍历,是否大于上一个元素的值,若大于则子序列长度加一,并与当前的最长子序列长度进行比较,若大于则替换为最大长度。给定一个长度为 n 的数组 arr,求它的最长严格上升子序列的长度。复制说明:该数组最长上升子序列为 [1,2,3,7] ,长度为4。输入:[6,3,1,5,2,3,7]

2023-12-26 11:10:06 514

原创 力扣算法练习BM52—数组中只出现一次的两个数字

一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。1.依次遍历,如果元素不在哈希表中,则将该元素放入哈希表中,出现次数为1,反之增加该数字的次数。数据范围:数组长度2≤n≤1000,数组中每个数的大小 0<val≤1000000。要求:空间复杂度 O(1),时间复杂度 O(n)2.找出数组中只出现过一次的两个数字。说明:返回的结果中较小的数排在前面。提示:输出时按非降序排列。输入:[1,4,1,6]

2023-11-28 08:25:26 465

原创 力扣算法练习BM51—数组中出现次数超过一半的数字

例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。2.如果元素不在哈希表中,则将该元素放入哈希表中,出现次数为1,反之增加该数字的次数。数据范围:n≤50000,数组中元素的值 0≤val≤10000。要求:空间复杂度:O(1),时间复杂度 O(n)3.并且依次判断找出哈希表中次数超过一半的数字。输入:[1,2,3,2,2,2,5,4,2]

2023-11-28 08:20:35 466

原创 力扣算法练习BM48—数据流中的中位数

如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。说明:数据流里面不断吐出的是5,2,3...,则得到的平均数分别为5,(5+2)/2,3...2)若列表中元素为偶数个,则计算中间两个数的平均值。输入:[5,2,3,4,1,6,7,0,8]1)若列表中元素为奇数个,直接返回最中间的数。3)返回结果为浮点型。

2023-11-27 23:39:17 325

原创 力扣算法练习BM50—两数之和

方法二:遍历列表,若target减去遍历当前值再直接去找哈希表中是否有key,若有则返回排序后的下标并加一,若无则把上一个元素添加到哈希表中,再继续遍历列表。给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。说明:因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3]数据范围:2≤len(numbers)≤105,10≤numbersi​≤109,0≤target≤109。

2023-11-27 23:31:54 700

原创 VUE中“:”、“@”、“#”

#”:表示v-slot的缩写,用于插槽,简单理解为占坑,有需要的时候将元素放入坑中。情况二:拿到scope整个的值,scope来自于外层的表单数据。“:”:表示v-bind的缩写,用于数据绑定。“@”:表示v-on的缩写,用于监听事件。情况一:直接拿到scope中的row的值。插槽不太理解,举个栗子给自己看。自己老犯错,记录一下。

2023-11-24 11:13:53 526

原创 力扣算法练习BM46—最小的K个数

给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。数据范围:0≤k,n≤10000,数组中每个数的大小0≤val≤1000。要求:空间复杂度 O(n) ,时间复杂度O(nlogk)说明:返回最小的4个数即可,返回[1,3,2,4]也可以。输入:[4,5,1,6,2,7,3,8],4。返回值:[1,2,3,4]直接排序,然后取前k个。

2023-11-22 22:21:15 78

原创 力扣算法练习BM45—滑块窗口的最大值

例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。输入:[2,3,4,2,6,2,5,1],3。

2023-11-22 21:42:24 73

原创 力扣算法练习BM43——包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。输入: ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]"POP"表示弹出栈顶元素,弹出2,栈中元素为-1。"PSH-1"表示将-1压入栈中,栈中元素为-1。"PSH2"表示将2压入栈中,栈中元素为2,-1。"PSH1"表示将1压入栈中,栈中元素为1,-1。输出: -1,2,1,-1。

2023-11-21 11:14:52 53

原创 力扣算法练习BM44——有效括号序列

给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。(2)若stack1栈顶元素和stack2栈顶元素不匹配,则将stack1栈顶元素弹出并入stack2栈中。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。(4)若stack1无元素,stack2有元素,则说明字符没有全部成对。(3)若stack1和stack2内均无元素,则说明字符全部成对。要求:空间复杂度 O(n),时间复杂度O(n)

2023-11-21 11:08:34 58

原创 飞桨——总结PPOCRLabel中遇到的坑

操作系统:win10python环境:python3.9paddleocr项目版本:2.7。

2023-11-21 00:09:09 1241

原创 力扣算法练习BM42—用两个栈实现队列

用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。输入:["PSH1","PSH2","POP","POP"]# 2.出队列就先从栈1出栈,放入栈2再出栈,相当于倒序输出。"POP“:代表删除一个元素,先进先出=>返回2。"POP“:代表删除一个元素,先进先出=>返回1。"PSH1":代表将1插入队列尾部。"PSH2":代表将2插入队列尾部。

2023-11-19 16:46:22 51

原创 力扣算法练习BM86—大数加法

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。3.若两个字符串均不为空,则转换为整型相加以后再转换为字符串并返回结果。2.若其中一个字符串为空,另一个不为空,则返回不为空的字符串。1.若两个字符串均为空,则直接返回0字符串。输入:"1","99"说明:1+99=100。

2023-11-18 23:22:40 61

原创 力扣算法练习BM84—最长公共前缀

3.列表元素个数大于一个,则让列表中第一个字符串与其余字符串依次匹配,若能匹配成功则返回该前缀,若匹配失败,则将第一个字符串减少一位,再与其余字符串匹配,直到第一个字符串为空字符串,则返回空字符串。给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。输入:["abca","abc","abca","abc","abcc"]2.列表只有一个元素,则直接返回该元素。1.列表为空,则直接返回空字符串。

2023-11-17 15:04:21 34

原创 力扣算法练习BM83—字符串变形

首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。数据范围: 1≤�≤1061≤n≤106 , 字符串中包括大写英文字母、小写英文字母、空格。比如"Hello World"变形后就变成了"wORLD hELLO"。进阶:空间复杂度 �(�)O(n) , 时间复杂度 �(�)O(n)给定一个字符串s以及它的长度n(1 ≤ n ≤ 10^6)1.先将字符串中的每个单词拆分放入列表中,并反转位置。

2023-11-17 13:18:41 62

原创 力扣算法练习BM85—验证IP地址

比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是一个有效的地址。所以, 2001:db8:85a3:0:0:8A2E:0370:7334 也是一个有效的 IPv6 address地址 (即,忽略 0 开头,忽略大小写)。比如, 2001:0db8:85a3::8A2E:0370:7334 是无效的 IPv6 地址。比如, 02001:0db8:85a3:0000:0000:8a2e:0370:7334 是无效的。同时,IPv4 地址内的数不会以 0 开头。

2023-11-17 12:51:02 45

原创 力扣算法练习BM28—二叉树的最大深度

求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。(注:叶子节点是指没有子节点的节点。输入:{1,2,3,4,#,#,5}的基础上,直接输出深度数量即可。

2023-11-14 21:45:52 41

原创 力扣算法练习BM27—按之字形顺序打印二叉树

给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)说明:如题面解释,第一层是根节点,从左到右打印结果,第二层从右到左,第三层从左到右。在上一题BM26层序遍历的基础上,只需要让奇数层反转就可以了。给定的二叉树是{1,2,3,#,#,4,5}返回值:[[1],[3,2],[4,5]]输入:{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是。

2023-11-14 21:01:37 48

原创 力扣算法练习BM26—求二叉树的层序遍历

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)2.遍历该节点是否有孩子节点,如果有将该节点出队,并将孩子节点放入队列中。给定的二叉树是{3,9,20,#,#,15,7},提示: 0 <= 二叉树的结点数 <= 1500。其中的关键是需要确定每层的个数。返回值:[[1],[2]]该二叉树层序遍历的结果是。1.先将根节点放入队列中。

2023-11-14 17:52:59 59

原创 力扣算法练习BM23/24/25—二叉树的前/中/后序遍历

1.确定递归方式:前序遍历,即根-->左子树-->右子树。与前序遍历同理,中序遍历:即左子树-->根-->右子树。与前序遍历同理,后序遍历:即左子树-->右子树-->根。给你二叉树的根节点 root ,返回它节点值的 前序。2.确定递归结束条件:遍历到空节点。3.将遍历的节点存入列表中。输入:{1,#,2,3}返回值:[1,2,3]

2023-11-08 23:57:47 40

原创 力扣算法练习BM22—比较版本号

牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等,现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。例如,1.02.11,0.1,0.2都是合法的版本号每个版本号至少包含1个修订号。因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1。一. 比较版本号时,请按从左到右的顺序依次比较它们的修订号。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。

2023-11-07 20:51:30 64

原创 力扣算法练习BM20—数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。依次遍历数组元素,并统计是否存在位于当前元素后面,且小于当前元素的元素,即统计能组成逆序对的个数,但是超时通过不了。1.看了一些题解,采用归并的方式,先两两判断是否为逆序对。题目保证输入的数组中没有的相同的数字。2.并对已经判断过的数对进行排序。方法一:暴力法(只会这个)3.再两两合并有序区间。方法二:归并排序算法。

2023-11-06 21:25:22 82

原创 力扣算法练习BM19—寻找峰值

给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。3.对于元素个数大于2的情况,找出前一个元素和后一个位置元素均小于当前元素的位置即可。3.对于所有有效的 i 都有 nums[i]!1.峰值元素是指其值严格大于左右相邻值的元素。2.假设 nums[-1] = nums[n] = −∞。ps:以上情况均未找到,直接返回数组最大值的位置。2.对于元素只有2个的情况,返回较大元素的位置。1.对于元素只有1个的情况,直接返回0。

2023-11-06 20:18:56 54

原创 力扣算法练习BM18—二维数组中的查找

在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。数据范围:矩阵的长宽满足 0≤�,�≤5000≤n,m≤500 , 矩阵中的值满足 0≤���≤1090≤val≤109。3.采用二分查找判断当前行数是否存在目标值,若无切换到下一行,当该行第一个元素大于目标值且未匹配成功,直接返回False。输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]说明:存在7,返回true。

2023-11-06 18:00:20 40

原创 力扣算法练习BM17—二分查找-I

给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1。数据范围:0 \le len(nums) \le 2\times10^50≤len(nums)≤2×105 , 数组中任意值满足 |val| \le 10^9∣val∣≤109。进阶:时间复杂度 O(\log n)O(logn) ,空间复杂度 O(1)O(1)输入:[-1,0,3,4,6,10,13,14],13。

2023-11-03 14:28:37 44

原创 VScode编辑器—Vue注释失败(ctrl+l)

不知道什么为什么突然注释失败,注释会添加双斜杠//,如下图所示。

2023-10-27 10:07:56 1376

原创 力扣算法练习BM16——删除有序链表中重复的元素-II

给出的链表为1 \to 2\to 3\to 3\to 4\to 4\to51→2→3→3→4→4→5, 返回1\to 2\to51→2→5.给出的链表为1\to1 \to 1\to 2 \to 31→1→1→2→3, 返回2\to 32→3.给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)输入:{1,2,2}

2023-10-23 16:46:45 39

原创 力扣算法练习BM15——删除有序链表中重复的元素-I

数据范围:链表长度满足 0 \le n \le 1000≤n≤100,链表中任意节点的值满足 |val| \le 100∣val∣≤100。给出的链表为1\to1\to 2 \to 3 \to 31→1→2→3→3,返回1\to 2 \to 31→2→3.删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次。给出的链表为1\to1\to21→1→2,返回1 \to 21→2.进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)输入:{1,1,2}

2023-10-23 16:35:46 45

原创 力扣算法练习BM14——链表的奇偶重排

数据范围:节点数量满足 0 \le n \le 10^50≤n≤105,节点中的值都满足 0 \le val \le 10000≤val≤1000。给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。2.将偶数位结点和奇数位结点分别放入两个新链表中,再按偶数链表在前,奇数链表在后进行相连。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)返回值:{1,3,5,2,4,6}注意是节点的编号而非节点的数值。输入:{1,2,3,4,5,6}

2023-10-23 16:28:22 37

原创 力扣算法练习BM13——判断一个链表是否为回文结构

数据范围: 链表节点数 0 \le n \le 10^50≤n≤105,链表中每个节点的值满足 |val| \le10^7∣val∣≤107。3.从列表中间拆分,并在列表长度为偶数或奇数的前提下,判断链表是否为回文结构。1.如果链表为空或只有一个结点,则必为回文结构。给定一个链表,请判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。2.将链表结点的值依次放入列表中。

2023-10-23 16:22:01 50

原创 力扣算法练习BM12——单链表的排序

数据范围:0 < n \le 1000000<n≤100000,保证节点权值在[-10^9,10^9][−109,109]之内。要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)给定一个节点数为n的无序单链表,对其按升序排序。1.遍历单链表,将节点的值依次加入到数组中。3.将排序后的数组元素依次插入到链表中。返回值:{1,2,3,4,5}输入:[1,3,2,4,5]

2023-10-23 11:27:02 45

原创 力扣算法练习BM10——两个链表的第一个公共结点

这道题不会,看的力扣上面的题解。

2023-10-20 10:31:20 49 1

原创 力扣算法练习BM9——删除链表的倒数第n个节点

数据范围: 链表长度 0\le n \le 10000≤n≤1000,链表中任意节点的值满足 0 \le val \le 1000≤val≤100。给出的链表为: 1\to 2\to 3\to 4\to 51→2→3→4→5, n= 2n=2.删除了链表的倒数第 nn 个节点之后,链表变为1\to 2\to 3\to 51→2→3→5.3.若删除头节点,则返回头节点之后的链表;要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针。

2023-10-20 09:28:11 45 1

原创 力扣算法练习BM8——链表中倒数最后k个结点

数据范围:0 \leq n \leq 10^50≤n≤105,0 \leq a_i \leq 10^90≤ai​≤109,0 \leq k \leq 10^90≤k≤109。其中蓝色部分为该链表的最后2个结点,所以返回倒数第2个结点(也即结点值为4的结点)即可,系统会打印后面所有的节点来比较。输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)

2023-10-17 10:53:47 50 1

原创 力扣算法练习BM7——链表中环的入口结点

返回链表的环的入口结点即可,我们后台程序会打印这个结点对应的结点值;复制说明:环的部分只有一个结点,所以返回该环形链表入口结点,后台程序打印该结点对应的结点值,即2。复制说明:返回环形链表入口结点,我们后台程序会打印该环形链表入口结点对应的结点值,即3。给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。复制说明:没有环,返回对应编程语言的空结点,后台程序会打印"null"可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入:{1,2},{3,4,5}

2023-10-17 10:26:37 48 1

原创 力扣算法练习BM6——判断链表中是否有环

说明:第一部分{3,2,0,-4}代表一个链表,第二部分的1表示,-4到位置1(注:头结点为位置0),即-4->2存在一个链接,组成传入的head为一个带环的链表,返回true。判断是否有环即可,则使用快慢指针(两个指针同方向)进行遍历,快指针每次移动两步,慢指针移动一步,若有环,则会相遇,无环则最终会遍历到末尾。说明:第一部分{1}代表一个链表,-1代表无环,组成传入head为一个无环的单链表,返回false。可以看出环的入口结点为从头结点开始的第1个结点(注:头结点为第0个结点),所以输出true。

2023-10-16 21:03:18 46 1

原创 力扣算法练习BM5——合并K个已排序的链表

数据范围:节点总数 0 \le n \le 50000≤n≤5000,每个节点的val满足 |val| <= 1000∣val∣<=1000。1、采用优先队列,依次链表节点放入队列中,生成小顶堆(非叶子节点不大于左孩子和右孩子)合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。要求:时间复杂度 O(nlogn)O(nlogn)2、依次获取堆顶元素。

2023-10-16 19:27:15 133 1

原创 前端项目练习——引入vue-router4

(2)这里我在工程项目中的src文件夹下创建一个router文件夹,在文件夹下创建一个index.js文件。(3)在main.js入口文件中引入。(1)可以在官方文档中查看入门教程。打开项目终端,输入安装命令。

2023-09-08 14:34:48 64 1

原创 前端项目练习——安装和简单使用Windi CSS

1.在App.js文件中的<template>标签中添加<Button>组件。2.打开官方文档,根据序号顺序依次点击查看,可随机选择一个样式进行验证。3.在Vite.config.js文件中的vite配置中添加插件。3.直接引入类名,即上图中序号5处的名字,将按钮字体变为红色,4.在main.js(Vite入口文件)中引入。下图可以看出按钮文字已经变为红色,说明成功。它是一个CSS框架,便于管理和后期维护。1.打开官方文档,选择Vite进行安装。2.进入项目终端,安装相关包。

2023-09-08 09:52:53 563 1

空空如也

空空如也

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

TA关注的人

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