- 博客(38)
- 收藏
- 关注
原创 18-字符串匹配
当发现主串和子串不匹配时,根据主串中的“坏字符”在子串中的位置,决定子串向右移动的距离。目标是让主串中的“坏字符”与子串中对应的字符对齐。当发现主串和子串的某一部分匹配时,根据已经匹配的“好后缀”在子串中的位置,决定子串向右移动的距离。目标是让“好后缀”与子串中对应的部分对齐。BM算法会同时使用这两种规则,并选择移动距离较大的那个,以确保跳跃的效率。
2025-02-20 15:18:08
1001
原创 17-预测赢家
给定一个表示分数的非负整数数组,玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,......。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。
2025-02-20 14:03:30
127
原创 16-省份数量
例题:有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个n*n的矩阵isConnectd,其中isConnectd[i][j]=1表示第i个城市和第j个城市直接相连,而isConnectd[i][j]=0表示二者不直接相连。返回矩阵中省份的数量。
2025-02-19 21:49:49
150
原创 15-贪心算法
在每一步选择中,都选择当前看起来最好的选项。:一旦做出选择,就不再回头重新考虑。:通过一系列局部最优的选择,最终达到全局最优。贪心算法并不一定能得到全局最优解,但在某些问题中,它可以高效地找到一个接近最优的解。
2025-02-19 20:55:38
1702
原创 14-二叉树最小深度-广度优先(BFS)
二叉树的最小深度是指从根节点到最近的的最短路径上的节点数。叶子节点是指没有子节点的节点。举个例子:1/ \2 34这棵树的最小深度是 2,因为从根节点1到叶子节点3的路径最短,只需要经过1和3两个节点。
2025-02-19 15:50:48
350
原创 13-二叉树最小深度-深度优先(DFS)
二叉树的最小深度是指从根节点到最近的的最短路径上的节点数。叶子节点是指没有子节点的节点。举个例子:1/ \2 34这棵树的最小深度是 2,因为从根节点1到叶子节点3的路径最短,只需要经过1和3两个节点。
2025-02-18 22:05:30
1188
原创 12-滑动窗口
滑动窗口算法是一种用于处理数组或字符串问题的技巧,特别适合解决涉及子数组或子串的问题。它的核心思想是通过维护一个“窗口”来高效地计算或查找满足条件的子数组或子串。
2025-02-18 21:38:31
303
原创 11-环形列表
给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针在此到达该节点,则链表中存在环。如果链表中存在环,则返回ture。否则,返回false。
2025-02-18 16:27:11
196
原创 10-排列硬币(三种解法)
总共有n枚硬币,将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。
2025-02-18 16:01:09
207
原创 08-两数之和(四种解法)
两数之和1:给定一个整数数组num,从数组中找出两个数满足相加之和等于目标数target。假设每个输入只对应唯一的答案,而且不可以重塑使用相同的元素。返回两数的下标值,以数组形式返回。的整数数组num,从数组中找出两个数满足相加之和等于目标数target。假设每个输入只对应唯一的答案,而且不可以重塑使用相同的元素。返回两数的下标值,以数组形式返回。两数之和2:给定一个。
2025-02-17 15:33:52
319
原创 03-寻找数组的中心下标
中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。题目:给定一个整数数组nums,请编写一个能够返回数组“中心下标”的方法。
2025-02-15 14:21:15
133
原创 02-双指针法
双指针算法就是通过两个“指针”(位置标记)从两端向中间移动,逐步缩小范围,快速找到答案。它的优点是**效率高**,特别适合处理有序数据或需要遍历的问题!
2025-02-15 13:58:42
410
原创 13-Java的break,continue,goto
goto:Java中没有goto,但两个关键字中有goto的影子。continue:用于终止某次循环过程。(相当于工作中请假)break:用于强行退出循环。(相当于工作中离职)
2025-02-13 15:09:48
112
原创 12-Java基本结构
与while的区别:while先判断后执行,do...while是先执行后判断。do...while总是能保证循环体会被至少执行一次!举例1:输出1-1000能被5整除的数,并且每行输出3个。for循环执行的次数是在执行前就确定的。for循环语句是支持迭代的一种通用结构,是最。按照顺序一句一句执行,是最简单的算法结构。举例2:打印九九乘法表。
2025-02-12 22:25:37
238
原创 10-JavaDoc生成文档
1.JavaDoc命令是用来生成自己API文档的。@since指名需要最早使用的jdk版本。@throws异常抛出情况。@return返回值异常。@version版本号。@author作者名。
2025-02-12 15:14:10
80
原创 07-Java基础语法(变量、常量、作用域)
1.代码形式2.变量作用域A.类变量B.实例变量C.局部变量3.变量的命名规范A.所有变量、方法、类名:见名知意B.类成员变量:首字母小写和驼峰原则:monthSalaryC.局部变量:首字母小写和驼峰原则D.常量:大写字母和下划线:MAX_VALUEE.类名:首字母大写和驼峰原则:Man,GoodManF.方法名:首字母小写和驼峰原则:runRun()
2025-02-10 22:37:26
211
原创 leetcode刷题笔记(数组02)-python逐行解析
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。
2025-02-10 11:07:09
180
原创 04-编写Hello,World!
C.【注意点】系统没有显示文件名,则需要我们手动打开。B.名字命名为Hello.java。A.文件后缀名为.java。1.随便新建一个文件夹,存放代码。4.在代码文件夹位置打开cmd。2.新建一个JAVA文件。5.输入以下指令运行代码。
2025-02-07 23:47:50
163
原创 leetcode刷题笔记(数组01)-python逐行解析
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。解法(1)由于使用了双重循环,该方法的时间复杂度为 O(n^2),其中n是nums列表的长度。对于较大的输入,这种方法效率较低。解法(2)哈希表法,将时间复杂度从 O(n^2) 优化到 O(n),显著提高了算法的效率。这种方法适用于大多数需要快速查找的场景,尤其是在处理大规模数据时。
2025-02-05 13:30:29
287
原创 01—Typora软件学习
点击跳转到新闻](https://www.msn.cn/zh-cn/news/other/字节员工福利政策调整-取消下午茶-2026年起停发春节红包/ar-AA1xLj5d?[截图2](https://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1tHYXB.img?[截图](C:\Users\pluto\Pictures\Saved Pictures\1642139383457 (2).jpeg)张三|男|1997.1.1。## 二级标题 ##
2025-01-25 22:56:47
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人