自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法小技巧

处理字符串时,将字符串转为字符数组,避免charAt()多次调用。

2025-09-25 16:01:49 121

原创 中心扩展法(解回文串)

【代码】中心扩展法。

2025-09-25 16:00:09 226

原创 操作数组->数据偏移

要移动数组的元素时,可以用特定存储结构中封装的函数,eg:LinkedList 或者Queue。可以用指针代表偏移量,每次移动都用改变偏移量来代表。offset 代表起点偏移值。

2025-07-24 10:49:00 149

原创 算法->两正方形共占的面积

两正方形占面积 — 重叠部分面积。

2025-07-23 16:20:41 360

原创 关于欧拉函数

5. 示例代码(Java)​。

2025-05-21 22:44:20 332

原创 算法--打表法

转自:例题:1:04:40开始。

2025-04-19 22:46:51 334

原创 十进制转某进制(2~36)

这里处理负数就是单纯的在前面加负号,所以不适用二进制。最主要的代码就是算某进制的每一位。

2025-04-11 14:40:18 202

原创 类型转换Java

/ 输出 "123"但是如果char不是数字(比如是字母),就不能用这种方式,要用下面的方式。// 如果想把char的2转换成int的2,就要+'0'Java 的基本数据类型对应的包装类大多都有。// 会把t1当作ASCII 码值。

2025-04-11 14:37:30 302

原创 封装方法的辨析

其他的不是n就是logn(包括TreeMap)数组没有,但是转换成list就可以用了。HashSet和HashMap(String是 O(m*n)时间复杂度均为 O(n)

2025-04-09 22:14:44 302

原创 数组划分使元素总和最接近

将一个数组划分为两个元素总和最接近的两个数组

2025-04-08 22:17:46 332

原创 全排列java

用检查是否全使用过来代替current.size() == nums.length。

2025-03-31 14:49:58 170

原创 高精度十进制数运算

是 Java 中用于进行高精度十进制数运算的类,位于。

2025-03-29 16:21:25 362

原创 前缀和、差分

前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和。

2025-03-27 11:23:13 181

原创 力扣-股票买入问题

次交易后持有股票的最大利润。在初始状态,持有股票意味着你花钱买入了股票,此时的利润应该是负数(扣除了买入股票的成本),而不是 0。次交易完成后未持有股票的最大利润。当还未开始进行任何有效的股票买卖操作时,也就是处于初始状态,此时没有持有股票且利润为 0。因为卖出的股票不能是前一天买入的了,所以不能-1要用合理时间的股票。如果有冷冻期,就修改状态转移方程。dp元素代表最大利润。

2025-03-09 20:51:45 306

原创 滚动数组及优化

每一行从后往前处理,则我们就可以实现用上一行和上一行的前一个元素相加,得当前元素。注意到对第 i+1 行的计算仅用到了第 i 行的数据,因此可以使用。每处理下一行,就添加一个0(因为两行之间元素总数只差1)用一个数组存结果,不断覆盖实现记录下一行的值。不用滚动数组:就把每行元素存进List里。的思想优化空间复杂度。

2025-03-09 16:38:48 271

原创 力扣-字符串

简单理解,放大s的概念,如果s可以由重复子串构成,那说明s中至少由两个相同字串,那么str = s+s也一定能由重复字串构成,str则至少有4个相同字串,去掉首尾字符,相当于破坏了第一个s的字串1,留下字串2,破坏了第二个s的字串2,留下字串1(本质上就是将s的两个字串中改变顺序,将后一个字串拿到前面)那么剩下的两个字串,如果能构成s(也就是题主说的包含原来的s),那说明s确实是由重复子串构成。这里注意一个概念,把s的概念放大,不要去纠结s的具体组成字符。同样的方法可以用在其它的近似值计算中。

2025-03-05 21:52:04 648

原创 字符串--子串匹配

下面给出了子串匹配问题的模板,预处理结束后的代码根据题意编写。数组元素表示从从位置 i 开始往后字符 j 第一次出现的位置。预处理目的:得到26个字母在字符串t中首次出现的位置。横坐标的每个点代表一个字母。

2025-03-03 22:04:04 250

原创 list的两个实现类

适用于需要频繁进行插入和删除操作,尤其是在列表的头部或尾部进行操作。二者的用法基本一致,只是时间和空间复杂度不同。:适用于需要频繁随机访问元素。

2025-03-03 20:05:19 384

原创 算法--牛顿迭代法

用二分查找找target 的中间值,就是target的平方根。同样的方法可以用在其它的近似值计算中。

2025-03-01 10:09:13 219

原创 力扣-贪心

这道题因为只有动1格才有cost,所以只要离目标位置的距离是奇数,就只需要1个cost(奇数-1 = 偶数,不消耗cost)但是int need = (correct.charAt(0) - current.charAt(0))这样却可以运行。但因为不是奇数就是偶数,所以奇数的个数只在两个数之间变动,那么选一个位置让奇数取两个数的较小者就行。但我们不找位置,而是统计奇数和偶数的个数,选一个最小数作为奇数的个数即可。// 输出 "123"利用对键进行排序的特点,可以替代打包(比如,背包问题,区间调度)

2025-02-28 01:57:16 329

原创 算法很美笔记(Java)—— 图(未完待续)

节点结构。

2025-02-26 01:59:58 1070

原创 算法很美笔记(Java)——动态规划

解重叠子问题(当前解用到了以前求过的解)形式:记忆型递归或递推(dp)动态规划本质是递推,核心是找到状态转移的方式,也就是填excel表时的逻辑(填的方式),而后代码就按填表的逻辑写即可可以先写递归解法,发现有很多重叠子问题时,再改dp递归是从大规模到小规模,记忆型递归或dp都是小规模到大规模大多数情况,题中要求什么,dp的值就代表什么,比如求最大长度,dp值就是最大长度。

2025-02-21 19:49:54 1255

原创 算法很美笔记(Java)——贪心

贪心遵循只看眼前的规则,不断地选取当前最优策略,最终得到最优解。

2025-02-18 11:15:22 932

原创 算法很美笔记(Java)——树(题)

不应该返回1,而应该返回3,因为根节点不是叶子节点,所以不能返回1。所以,如果某个子树为null,则应该返回另一个子树里的最小深度。的最短路径上的节点数。叶子节点是指没有子节点的节点。二叉树的最小深度是指从。

2025-02-14 01:43:13 209

原创 算法很美笔记(Java)——树(知识点)

2、没有左子树,则向上追溯,直到某个祖先节点是右孩子,那么这个祖先节点的父节点就是所求。2、没有右子树,则向上追溯,直到某个祖先节点是左孩子,那么这个祖先节点的父节点就是所求。但是如果这个节点是改变后的,想要更新height,就只能用上面的,不能用下面这个方法(记录过的height)。判断不平衡类型的关键在于当前不平衡节点(平衡因子为 -2 或 2 的节点)及其子节点的平衡因子。具体来说:指针先指树根,加入队列里后,弹出队列,把他的孩子都加入,再弹,再加。指的是中序遍历后的那个序列,某节点的前驱。

2025-02-12 17:34:04 752

原创 力扣--链表

把A链表的节点都存HashSet里,遍历B链表找相同的节点。

2025-02-09 23:55:50 281

原创 算法很美笔记(Java)—— 栈、队列

栈:head那边是栈顶。

2025-02-08 01:03:18 309

原创 算法很美笔记(Java)—— 哈希

HashMap存键值对,HashSet存值。

2025-02-08 01:02:35 203

原创 算法很美笔记(Java)—— 链表

测试数据和print。

2025-02-04 23:37:51 304

原创 算法很美笔记(Java)——dfs/剪枝

dfs:深度优先遍历一般用于:有很多种状态,不同状态下又有很多种状态,形成一棵树,每一整个从树根到叶子的分支代表一种结果,需要校验每种结果是否可行。简而言之,一直进行“尝试、行就继续走,不行就退回”的过程。剪枝:当需要在所有情况中,选某个情况时,有一些情况一定是不可以的,这时候直接用代码来限制不选这种情况,省略了选择后判断的过程,这种限制不选的操作叫剪枝。(在素数环中体现明显)剪枝越早越好。

2025-02-03 23:01:55 1087

原创 算法很美笔记(Java)——递归、回溯

自上而下的递归叫分治法自下而上的递归叫逐步生成结果(也就是把n想成一个比较小的数来找规律,用前面的结果来算后面的结果,因为后面的结果会包含前面的结果递归比迭代(循环)开辟的空间(栈)多如果明确了递归次数,用迭代比较好递归改写成迭代要找好决定量,决定量是一个就一维,决定量是两个就二维写迭代决定量就是画表格,找关系。

2025-01-22 21:40:38 618

原创 算法很美笔记(Java)——数学问题

这道题可以抽象成三进制问题,因为砝码重量是三进制如果砝码重量是二进制,则可以将要称的重量转化为二进制,二进制对应位如果是1表示选用,如果是0表示不用eg:称11,二进制为1 0 1 1,所以选用8,2,1的砝码8 2 1对于三进制,如果沿用上面的方法会造成砝码重复使用,这是不行的eg:称5,三进制为1 2,所以选用一个3,两个1的砝码3 1所以策略是:让2进位,只要是2,就进位,原位补-1,因为0 2和2 -1的都表示一个数。eg:两个3号砝码,和一个九号砝码减一个三号砝码一样。

2025-01-03 14:15:01 429

原创 循环队列队头队尾功能互换(C++)

稍微改一下代码,把队尾加入,队头删除也添加上,可以实现队头队尾都能插入删除的功能。

2024-11-22 22:02:59 188

原创 力扣第二次刷题

运算n>>1时,奇数的结果=他前面的那个偶数的结果(6>>1 = 3,7>>1 = 3)while的方式时间复杂度比for循环(注释内容)低。但实际上奇数也可以当成 他前面的那个偶数+1。for循环的方式时间会超。

2024-11-10 21:46:31 206

原创 力扣第一次刷题

Integer方法主要是将指定进制(radix)表示的字符串(s)转换为十进制整数如果a是"101",那么经过这一步操作,它会被转换为对应的十进制整数5。是Integer类的另一个静态方法,将十进制整数转换为二进制字符串形式字符转整形可以直接在后面- '0' 比如。

2024-11-10 14:08:48 353

原创 算法很美笔记(Java)——位运算

在Java中,是一个位运算符,用于对两个整数的二进制表示进行按位与(AND)操作。按位与操作的特点是,只有当两个相应的二进制位都为1时,结果的该位才为1;否则,结果的该位为0。这样一位一位比较,最终形成一个由0和1组成的二进制数。(所以这个二进制数转换成十进制的时候,如果有多个1, 或者, 1不在最后显示,会导致对应的十进制数不是1而是更大的数,这个注意一下,在后面做判断的时候做一下处理,以防本应符合题意,却漏掉)

2024-11-09 15:53:10 1036

原创 算法-中缀转后缀表达式(C++)

从左至右依次遍历中缀表达式,一个字符一个字符的处理运算符都要入栈处理,而后续输出的运算符也只从栈内取(保证取的运算符都是经过处理的)(这里的栈内处理,实则不用在栈内操作运算符,而是通过于当前运算符做比较来当作处理)什么时候输出:运算优先级较高时输出(因为要保证优先级高的先运算的原则)(但由于输出的运算符只从栈内取,所以这里的输出具体来说是:运算优先级高于当前处理运算符时输出)

2024-10-16 17:26:43 1198

原创 算法很美笔记(Java)——字符串(下)

就是将字符串转换成k进制数把要找的序列的hash值算出来,假如要找的序列长度为n去待查找的的序列,每n个元素算一个hash值将这个hash值与要找的序列的hash值作比较,相等则找到。

2024-10-15 19:38:33 438

原创 算法很美笔记(Java)——字符串

假设字符串是ASCII字符串因为码表一共128个元素,所以辅助空间开129个,索引是0~128可以直接遍历每个字符,取对应的码值作为索引,填入辅助空间内如果不能开辟辅助空间,就只能两层for循环遍历取到一个元素,就与所有元素作比较,看相不相等。

2024-10-04 01:12:00 437 1

原创 算法很美笔记(Java)——多维数组和矩阵

当leftUpRow、leftUpColumn、rightDownRow、rightDownColumn都相等时会剩中间一个中心元素时单独加if处理。不能直接遍历,遇到0就清零,这样会导致被清零的数也当成0,清零他的行列。顺时针一圈一圈的遍历,与左上角和右下角的坐标作比较,直到两坐标交错。设置一个标志l2r,来控制从从左下到右上遍历还是从右上到左下遍历。从左下到右上遍历,就横坐标--,纵坐标++;从右上到左下遍历,就横坐标++,纵坐标--;每次横着或竖着改变坐标时,l2r就要变。

2024-10-02 09:34:59 229

空空如也

空空如也

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

TA关注的人

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