![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
代码博客
文章平均质量分 85
分享编程、开发工具、算法和实践经验等与代码相关的内容。
liaoliao0513
这个作者很懒,什么都没留下…
展开
-
三角形最小路径和-java
动态规划原创 2024-04-09 23:40:59 · 938 阅读 · 0 评论 -
柱状图中最大的矩形-java
栈原创 2024-04-07 22:05:54 · 1015 阅读 · 0 评论 -
不同路径- java
动态规划, 滚动数组原创 2024-04-05 07:30:00 · 1993 阅读 · 0 评论 -
最小覆盖子串-java
滑动窗口算法原创 2024-03-31 01:18:56 · 630 阅读 · 1 评论 -
最接近的三数之和-java
题目描述: ( 力扣题库 : 16 )nnumstargetnumstarget这段代码的解题思想是首先对给定的整数数组进行,以便更好地利用有序数组的性质。然后,通过遍历数组并固定一个数作为三个数中的第一个数,使用双指针技术来找到剩下两个数,使它们的和最接近目标值。在双指针的过程中,我们不断计算当前三个数的和,并根据与目标值的差值来更新最接近目标值的和。通过移动左指针和右指针,我们可以调整剩下两个数的选择,以便逐步逼近目标值。最终,算法会返回找到的最接近目标值的三个数的和。原创 2024-03-25 23:13:11 · 940 阅读 · 1 评论 -
搜索插入位置-java
O(log n)通过比较目标元素与数组中间位置的元素的大小关系,从而缩小查找范围。原创 2024-03-27 23:11:10 · 702 阅读 · 0 评论 -
有效的数独-java
9 x 91-91-91-93x3'.'使用 `++` 操作符自增,同时检查是否出现重复数字,如果出现重复数字,则直接返回 `false`,表示该数独不合法。原创 2024-03-28 23:51:47 · 1149 阅读 · 0 评论 -
跳跃游戏-java
给你一个非负整数数组 ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度判断你是否能够到达最后一个下标,如果可以,返回 ;否则,返回 。 这个问题可以使用贪心算法来解决。贪心算法的思想是每一步都选择当前最优的解决方案,从而希望最终能够得到全局最优解。具体来说,我们可以从数组的第一个位置开始,依次遍历数组中的每个元素,同时记录当前能够到达的最远位置。在遍历过程中,如果当前位置超过了最远位置,说明无法继续前进,即无法到达最后一个下标,返回 false。否则,更新最远位置为当原创 2024-03-29 22:14:49 · 974 阅读 · 1 评论 -
电话号码的字母组合
通过不断地动态更新结果列表,逐步构建所有可能的字母组合。这种方法避免了使用递归,而是利用迭代和动态更新来解决问题,提高了效率和可控性。以下是完整代码原创 2024-03-26 23:27:43 · 967 阅读 · 0 评论 -
三数之和-java
在这种情况下,使用Map并不能提高算法的时间复杂度,因为我们仍然需要遍历数组来生成所有可能的三元组,而使用Map只是为了存储这些结果。: 对于三数之和问题,通常存在多组解,而且这些解可能包含相同的元素。在三数之和问题中,排序后可以避免重复计算相同的元素组合。如果和等于目标值,则找到一组解,将这三个元素加入结果集。如果和小于目标值,将左指针右移。使用Map来存储结果会增加额外的空间复杂度,尤其是在需要处理大量数据时,会占用大量内存空间。使用Map存储结果时,需要额外的逻辑来处理重复的解,增加了代码的复杂性。原创 2024-03-24 22:03:51 · 808 阅读 · 1 评论 -
盛最多水的容器-java
给定一个长度为 的整数数组 。有 条垂线,第 条线的两个端点是 和 。 找出其中的两条线,使得它们与 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。当使用双指针法解决这个问题时,我们可以初始化左指针为数组的起始位置,右指针为数组的结束位置。然后,我们计算当前两个指针所形成的容器的容量,并记录当前的最大容量值。接下来,我们移动指针的规则是:由于容器的容量取决于较短的那根柱子的高度,所以我们移动较短柱子的指针,以期望找到更高的柱子,原创 2024-03-22 16:23:58 · 1380 阅读 · 1 评论 -
最长回文子串-java
示例 :输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。提示:首先定义一个方法isPalindrome(名称随意), 用来判断某个字符串是否是回文字符串,接着再一一例举出每个子字符串,利用该方法isPalindrome,找出回文字符串,然后进一步找出最长度的回文字符串,该方法遍历出所有的子字符串,时间复杂度为o(n^2), 判断是否为回文字符串,时间复杂度为o(n).所以, 总时间复杂度为o(n^3). 2.定义两个变量,begin(子字符串的起始位置原创 2024-03-19 00:14:23 · 1247 阅读 · 1 评论 -
整数反转-java
如果在转换整数时发生了数字格式异常,即整数溢出的情况,返回0作为溢出处理结果。如果输入整数是负数,这一行将其转换为正数,以便后面处理。: 这是一个循环,用来逐位获取输入整数的数字并将其添加到。减去末尾数字 x % 10 就等于更新前的整数。当传入的数字为负数时,while循环不会执行.这一行检查输入整数是否为负数,并将结果存储在。除以10,以便在下一次迭代中处理下一个数字。以下是补充完整的while 循环的代码。溢出, 存储的数据会丢失, 此时。, 不是我们所预期的结果.逆序排列后的数字转换为整数。原创 2024-03-20 22:44:27 · 1265 阅读 · 2 评论 -
两数之和-java
扩容。原创 2024-03-16 22:46:10 · 1357 阅读 · 0 评论 -
Z 字形变换-java
简化计算行数的逻辑:在给定代码中,计算行数的逻辑可以简化。当行数为1或大于等于字符串长度时,直接返回原始字符串。输入:s = "PAYPALISHIRING", numRows = 3。在没有多线程安全需求的情况下,建议使用StringBuilder。(代码运行时间从8ms 减少到了 4ms)输出:"PAHNAPLSIIGYIR"每个元素代表 Z 字形中的一行。由英文字母(小写和大写)、大于输入字符串的长度。原创 2024-03-20 00:38:57 · 1213 阅读 · 1 评论 -
字符串转换整数(atoi)-java
32 位有符号整数atoi函数如果没有读入数字,则整数为0。必要时更改符号(从步骤 2 开始)。小于−231的整数应该被固定为−231,大于231 − 1的整数应该被固定为231 − 1。' '-42整体思路还是很简单的, 将字符串的字符提取出来转换成整数, 然后依据题目要求, 注意一下细节就行了.原创 2024-03-22 00:35:14 · 826 阅读 · 1 评论 -
回文数-java
x,如果x是一个回文整数,返回true;否则,返回false。回文数121123整数反转--一种是利用字符串, 使用双指针法, 快速判断该数是否为回文数(但这种方法会占用一些额外的空间),二是整数的后半部分进行反转,然后与整数的前半部分进行比较。注意要分奇偶两个指针逐个比较字符,以判断是否满足某种条件。原创 2024-03-23 23:33:57 · 2376 阅读 · 1 评论 -
无重复字符的最长子串
它需要检查所有可能的子串,然后对每个子串检查是否有重复字符。这会导致时间复杂度为 O(n^3),其中 n 是输入字符串的长度。因此,暴力枚举法不太适合解决这个问题,而使用。首先,我想到的是暴力枚举法,但暴力枚举法在这个问题上的时间复杂度较高,因为。,请你找出其中不含有重复字符的。,其中 n 为输入字符串的长度。因为无重复字符的最长子串是。时间复杂度为 O(n),所以其长度为 3。原创 2024-03-17 21:46:57 · 925 阅读 · 0 评论