想躺着
想躺着
全部文章
题解
归档
标签
去牛客网
登录
/
注册
想躺着的博客
全部文章
/ 题解
(共7篇)
复杂链表的复制
按顺序分两次复制,使用map存储clone的映射关系 第一次,从头节点clone到尾节点,不复制random,并将原链表的地址与clone的新地址使用map映射tmp:=make(map[*RandomListNode]*RandomListNode) root := &RandomL...
2021-08-02
0
398
表达式求值
使用后缀表达式对于表达式进行求值 1. 求后缀表达式 后缀表达式求取:后缀表达式结果使用队列 tmp 进行存储 遇到数字字符,截取相连的数字字符为一组,加入 tmp 中 设置符号优先级,入栈时 (、*、/ 大于 +、- 大于 ), 出栈时 *、/ 大于 +、- 大于 (,并构建存储符号的栈 ...
2021-03-29
0
804
最大不相邻子序列和
注意当 i>3 时,可以相隔 2 个位置获得最大值,因此,还需要比较 arr[i] 与 max[i-3] 的和。max 存储的是当前值作为子序列结尾可获取到的最大值 func subsequence( n int , array []int ) int64 { // write co...
2021-03-14
0
683
子数组最大乘积
此题求最大值,可以将动态规划数组的第 i 个数字表示为加入第 i 个位置数字后的最大值。但由于此题存在负数乘法,可能最小值变为最大值,所以需要将最大值与最小值为 amax,amin 都存储(按照原始动态规划应该存储在 dp 数组中,但由于更新只与上一状态有关,可以直接存储数字,更新即可,这样可节约...
2021-02-22
0
578
链表中的节点每k个一组翻转
初始化头节点与尾节点 使用头插法将后续 K-1 个节点插入头节点与尾节点之间,使前 K 个节点倒转,然后更新头节点与尾节点。 循环上述步骤,直至尾部节点的 Next 指向 nil 或 插入的节点数小于 k-1,返回链表头节点。 1 对于插入节点小于 k-1,此时需要将逆转的节点进行还原,然后返...
2020-12-19
0
607
删除链表的倒数第 n 个节点
由于题中已经表示 n 一定有效,因此不考虑 n 无效的情况。限定时间复杂度为 O(n), 说明需要在一个循环内完成,因此我们使用前后指针的形式。使用 pre 表示当前节点 cur 的前一个结点,next 结点表示距离当前结点 cur 为 n 的结点,因此,当 cur 移动到最后一个结点时,此时删除 ...
2020-12-19
0
515
容器盛水问题
使用双指针 此题可以理解为水位动态变换 定义左右指针i,j,以及水位标记mark,随着指针的移动,水位标记会改变。也就是说,这题中含有指针的移动规则以及水位mark的改变规则。指针移动规则:移动水位小的指针,详情见https://leetcode-cn.com/problems/container...
2020-12-14
0
750