算法与数据结构
文章平均质量分 63
算法+刷题
weiliuhong1
这个作者很懒,什么都没留下…
展开
-
【二分查找】有界数组中指定下标处的最大值
这道题一开始我没有读懂题目,后续看题解才明白要解决啥问题;整体实现上直接使用二分查找就能解决;最近在学golang,所以代码实现也切换成golang;原创 2023-01-05 00:00:13 · 480 阅读 · 0 评论 -
【数组】移动所有球到每个盒子所需的最小操作数
给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1 。混合字符串 由小写英文字母和数字组成。示例 1:这里我们使用2种思路来解决上述问题:第一种使用max和secondMax来解决,secondMax代表第二大;第二种使用一个数组,然后从后往前遍历。解决思路:代码实现如下:2.2.方案2解决思路:3.总结这里我们用了2种解法,第一种解法是标准解决方法,思路明确;第二种解法有些取巧的感觉,但是给我们提供了一套新的思路,并且执行效率也特别高。原创 2022-12-03 12:35:59 · 490 阅读 · 0 评论 -
【图】可能的二分法
这道题是一道图论相关的题,核心点是要熟悉二分图的处理思路,如果之前没有了解过,完全作为一个新问题做解答还是比较复杂的。工作的时候,基本没有遇到过leetcode的问题,但做题的核心还是锻炼思维,开拓眼界。如果有更加简洁、高效的解题思路欢迎回复。原创 2022-10-16 18:48:41 · 281 阅读 · 0 评论 -
【数组】使序列递增的最小交换次数
这道题是一道动态规划的题目,总体感觉这种题目看是否能想到公式,并且考虑完整的case,之后问题就迎刃而解。如果有更加高效简洁的方案欢迎回复。原创 2022-10-10 22:02:28 · 803 阅读 · 0 评论 -
【栈】三合一
这道题是一道简单题,就是考查栈操作,这里我用了2种方式:一维数组和二维数组,从效率上讲使用二维数组更快。如果有更高效、简洁的方法,欢迎回复。原创 2022-09-30 00:19:13 · 368 阅读 · 0 评论 -
【数组】最大人工岛
这道题可以拆分成:1.使用DFS求解小岛面积、2.对每个小岛进行标记、3.求连通小岛的面积和。这道题我做了多次优化但是测试结果还是要67ms,欢迎有更加高效、简洁的思路回复。原创 2022-09-18 17:01:07 · 302 阅读 · 0 评论 -
【数组】灯泡开关 Ⅱ
这道题直接按照这个代码实现,执行时会超时;说明这道题不能按照暴力方法来解决,那么可以通过分析规律来解决;这里我暂时不提供解决方案,欢迎回复更简洁、高效的思路。原创 2022-09-15 23:07:10 · 268 阅读 · 0 评论 -
【数组】雇佣 K 名工人的最低成本
这道题是一道困难题,核心还是找到数学规律,我是看了其他人的解决思路后,再自己做了一次实现,核心还是没有从现象上找到真正的数学规律。如果有更加简洁、高效的实现欢迎回复。原创 2022-09-12 00:03:52 · 174 阅读 · 0 评论 -
【数组】机器人的运动范围
这道题是一个基础的遍历题目,目前我使用BFS方式耗时都在3ms左右,不是最优解;能想到的是采用DFS来解决,后续再更新关于DFS的解决方案。如果有更加高效、简洁的实现思路欢迎回复。原创 2022-09-09 22:22:32 · 108 阅读 · 0 评论 -
【数组】优美的排列 II
最近做这些题目发现都是找数学规律,找到数学规律后再做代码实现,最后是做代码耗时优化,后续可以多看看数学相关的书籍。原创 2022-09-08 22:54:44 · 302 阅读 · 1 评论 -
【二叉树】寻找重复的子树
这道题是二叉树遍历的变体,考察核心如何遍历每个节点,并且做去重操作;如果有更加简洁、高效的思路欢迎回复。原创 2022-09-05 23:17:41 · 513 阅读 · 0 评论 -
【数组】二进制矩阵中的特殊位置
这道题有点超过我的意料,3次遍历耗时反而最低;如果有更加高效、简洁的代码实现欢迎回复。原创 2022-09-04 11:34:46 · 186 阅读 · 0 评论 -
【数组】最长数对链
这道题完全反应了三种解决思路在执行效率的差别,我自己最开始想到的就是第一个解法;后续2种解法看过其他人的思路才实现的;如果有更简洁、高效的解法欢迎回复。原创 2022-09-03 11:27:25 · 155 阅读 · 0 评论 -
【二叉树】最长同值路径
这道题是中等难度,这道题使用dfs做是很高效的,代码复杂度也不高,主要困难点是找到规律能通过左右子树来计算满足条件的边数量。如果有更加高效、简洁的代码实现欢迎回复。原创 2022-09-02 23:31:49 · 522 阅读 · 0 评论 -
【数组】商品折扣后的最终价格
这是一道遍历+元素大小比较的题目,复杂度不高,上述代码耗时是很低的。如果有更加简洁高效的代码实现,欢迎回复。原创 2022-09-01 23:13:50 · 159 阅读 · 0 评论 -
【栈】验证栈序列
这道题中等难度,利用栈来模拟操作,能解决上述问题;从这个数据上看还有优化空间,如果有更高效、更简洁的代码欢迎回复。原创 2022-08-31 23:14:47 · 513 阅读 · 0 评论 -
【二叉树】最大二叉树 II
这道题是中等难度,重点是理解题目要求,如果有更好的题目描述、更高效更简洁的代码实现欢迎回复。原创 2022-08-30 23:07:56 · 215 阅读 · 0 评论 -
【数学】阶乘函数后 K 个零
如果只是单纯解决这道题,解决思路会非常多,但是耗时差别会非常大;第二种思路我是看其他人的解法才解出来的,第二种思路的核心就是通过二分查找找到第一个满足条件的数字或者是大于条件的数字,然后用f(n+1)-f(n) 就能求出满足条件的个数。...原创 2022-08-28 21:11:57 · 150 阅读 · 0 评论 -
【数学】丑数II 和 超级丑数
从上面第一个问题的两个解决思路,可分为传统思路和动态规划,动态规划在耗时方面真实太优秀了;但是要想到却很费脑子,我主要还是看了别人的解题思路后,自己再实现了一遍,对动态规划这块一直做的不太好。如果有更高效、更简洁的解决方案欢迎回复。...原创 2022-08-27 15:30:56 · 187 阅读 · 0 评论 -
【二叉树】二叉树最大宽度
这道题就是2-3个简单问题组合到一起的中等难度问题;二叉树的层序遍历,BFS;二叉树的性质-下标生成的规则,并且构造有下标的二叉树;最大值的获取。这道题按照上述解法,耗时1ms左右。如果有更高效、更简洁的思路欢迎回复。...原创 2022-08-27 09:32:53 · 493 阅读 · 0 评论 -
【字符串】重复的DNA序列
这道题核心还是做优化,有点像孔乙己说茴香豆的茴有多少种写法;这里我提供了3种,如果有更高效、更简洁的代码欢迎回复。原创 2022-08-26 23:05:19 · 555 阅读 · 0 评论 -
【数组】找到 K 个最接近的元素
这块代码还可以进一步优化耗时,如果有更加高效、简洁的实现,欢迎回复。原创 2022-08-25 22:30:28 · 718 阅读 · 0 评论 -
【数组】通过翻转子数组使两个数组相等
这道题解题思路上复杂度不高,核心还是降低耗时;欢迎有更简单、高效的思路回复。原创 2022-08-24 22:30:07 · 482 阅读 · 2 评论 -
【二叉树】输出二叉树
这道题就是二叉树的层序遍历+完全二叉树的特点的题目,感觉更像一个数学题目,先找到规律,然后用代码完成数据展示。欢迎有更高效、更简洁的思路回复。原创 2022-08-22 23:09:23 · 1483 阅读 · 0 评论 -
【数组】驼峰式匹配
这道题核心就是字符串匹配,匹配时要考虑出现大写字符的case;如果有更加简洁、高效的代码,欢迎回复。原创 2022-08-21 12:09:08 · 230 阅读 · 0 评论 -
【字符串】检查单词是否为句中其他单词的前缀
这道题2种解法时间复杂度是O(n),预期是第二种实现方式耗时更低,因为不用先处理字符串,再做字符串匹配,实际从测试结果来看耗时基本一样。当然如果有更加简洁、高效的思路欢迎回复。原创 2022-08-21 10:38:24 · 199 阅读 · 0 评论 -
【数学】矩形面积
这个代码我这边实现还是很复杂的,分支特别多,整体耗时还是比较低的。看过其他代码实现,通过查看其他代码有更加简洁的实现。分别求两个矩形的面积,分别是v1和v2;求可能存在的重叠部分,如果width > 0 并且 height > 0, 则重叠部分面积是 width * height,否则就是0;返回v1+v2 - 重叠部分面积。}}}}原创 2022-08-20 23:23:40 · 337 阅读 · 0 评论 -
【二叉树】最大二叉树
这道题第一种实现方案耗时更低,但是大家分析时间复杂度是第一种方案时间复杂度更高;欢迎有更简洁高效的解法回复。原创 2022-08-20 20:37:03 · 724 阅读 · 0 评论 -
【数组】最大相等频率
这道题我主要时间都在做验证,很多case都要覆盖,整个严谨性还需要提高;欢迎有更快、更简洁的思路回复。原创 2022-08-18 22:11:37 · 193 阅读 · 0 评论 -
【二叉树】层数最深叶子节点的和
这道题是一道中等难度的二叉树遍历的题目,如果对二叉树DFS和BFS都比较清楚,能快速的解决这个问题。如果有更快、更简洁的代码实现欢迎回复。原创 2022-08-17 21:19:47 · 616 阅读 · 0 评论 -
【数组】设计有序流
这是一道字符串数组操作的题目,看起来在模拟网络传输时填充一个有序流。按照题目要求只需要,充分利用字符数组+指针pr,就能完成。如果有更好的思路,欢迎回复。原创 2022-08-17 00:11:17 · 88 阅读 · 0 评论 -
【队列】设计循环双端队列
这道题在耗时上优化,主要集中在使用++ 和 --,可以减少系统指令数量;实际就是利用环形数组实现了循环双端队列,如果有更加快速和简洁的实现方式欢迎评论。原创 2022-08-15 23:59:30 · 380 阅读 · 0 评论 -
【字符串】分割字符串的最大得分
这是一套简单题,在耗时方面我的解法也不是最快的,欢迎大家提供更快、更简洁的解法。原创 2022-08-14 12:41:57 · 286 阅读 · 0 评论 -
【数组】最多能完成排序的块 数学
这道题是一个中等难度题目,第一种方案自己想到了,最终完成了代码。第二种方案,代码非常简单,但最终还是看其他人的代码实现才解决了。这道题的解决方案欢迎大家回复,给出更加优秀和简单的解法。这道题是一个复杂题目,在原来题目上增加了还原数组下标的操作,目前的解决方案耗时还是很高的,如果有更加快速、简洁的思路欢迎回复。......原创 2022-08-13 17:06:46 · 432 阅读 · 0 评论 -
【数组】用户分组 哈希表
这道题在解答思路上要注意一下,一定要用通过哈希表来做,因为排序耗时和哈希表操作的时间复杂度差别很大;上述代码哈希表,还可以进一步改写,直接使用局部变量数组来做,时间上还能有所下降,但是均无法到达最快耗时,欢迎大家提供更快更好的思路。...原创 2022-08-12 21:57:49 · 514 阅读 · 0 评论 -
【字符串】重新格式化字符串
这道题整体就是字符串的解析和判定,为了提升执行效率,我把临时存储2种类型的List给取消了,在字符合并时也做了优化,最终达到最优的耗时。当然,如果有更加好、更加高效的思路,欢迎回复。...原创 2022-08-12 00:47:51 · 168 阅读 · 0 评论 -
【字符串】求解方程 数学
这道题是一道字符串解析题目,然后按照数学方法解决,上述2种实现方式耗时接近,只是减少了代码量。看了看其他人的解决方法,思路基本一致,耗时这块没有看到其他的优化了。如果有更加好的解法方法欢迎回复。...原创 2022-08-11 00:01:33 · 305 阅读 · 0 评论 -
【数组】逐步求和得到正数的最小值
这道题解题思路和代码实现都比较简单,核心还是看明白题目的细节和要求,第一做时居然错了,发现还是没有读懂题目;上述解法是我自己的思路,有更好思路,欢迎大家回复。原创 2022-08-10 00:13:46 · 306 阅读 · 0 评论 -
【字符串】特殊的二进制序列 递归+排序
这道题实际就是一个不断拆解的问题,但找到这个规律不太容易,我是查看了其他人的分析思路后才能基本理解思路。如果换一类题可能又会忘记做法,这类题只能自己再多加练习了。如果有更好的解法或者类似的题目欢迎回复,大家一起进步。...原创 2022-08-09 00:55:36 · 233 阅读 · 0 评论 -
【字符串】函数的独占时间 栈
给你一个由日志组成的列表 logs ,其中 logs[i] 表示第 i 条日志消息,该消息是一个按 "{function_id}:{"start" | "end"}:{timestamp}" 进行格式化的字符串。例如,"0:start:3" 意味着标识符为 0 的函数调用在时间戳 3 的 起始开始执行 ;而 "1:end:2" 意味着标识符为 1 的函数调用在时间戳 2 的 末尾结束执行。注意,函数可以 调用多次,可能存在递归调用 。函数的 独占时间 定义是在这个函数在程序所有函数调用中执行时间的总和,调用原创 2022-08-07 13:21:32 · 125 阅读 · 0 评论