归档
Growth | Study
09
09
08
04
用栈实现队列 用栈实现队列
面试题09. 用两个栈实现队列 栈A用于加入元素 栈B用于反转元素。栈顶元素就是队头元素。删除队头时 先判断 B 是否为空,只要 B 不为空, 无论 A 是否为空都是从 B 弹出元素 B为空时 若A为空,则返回-1 若A不为空,则将其转反转
2021-09-04
03
697-数组的度 697-数组的度
697. 数组的度 先统计一次数组,得到度 滑动窗口的左右指针用于更新并统计信息 先增大右窗口,得到符合条件的窗口后,开始缩小左窗口 class Solution { public: int findShortestSubAr
2021-09-03
02
11-盛最多水的容器 11-盛最多水的容器
11. 盛最多水的容器 利用双指针,不断更新面积 决定面积大小的因素:两个柱子(指针)之间的距离以及两柱子的最低高度。所以面积表示为min(height[l],height[r])*(r-l) 如果低柱子不动,让高柱子的那一侧往里跳,(r
2021-09-02
02
6-Z字形变换 6-Z字形变换
6. Z 字形变换 模拟遍历过程 用一个flag记录当前是不是需要从上到下(从下到上)转换方向 初始flag设为-1。记录好当前行后,判断是否需要更新flag 如果行数为0或1,则直接返回 class Solution(object)
2021-09-02
08
30
32-最长有效括号 32-最长有效括号
32. 最长有效括号括号问题常常可以用栈来处理 stack idx ; // 如果是左括号,则左括号的索引入栈 vector v; // 记录全部有效括号的索引 如果当前为右括号,且栈顶有左括号,则记录栈顶左括号的索引和当前右括号的索
2021-08-30
26
第四章:如何实现一个计算器 第四章:如何实现一个计算器
labuladong如何实现一个计算器 227. 基本计算器 II遇到加号,就让这个数变正遇到减号,就让这个数变负遇到乘号,就让当前的数乘上之前的数遇到除号,就让当前数被之前的数除 思路:维护一个栈,若为加减,则直接入栈。若为乘除,则栈顶元
2021-08-26
26
640-求解方程 640-求解方程
640. 求解方程 示例 : 输入: “x+5-3+x=6+x-2”输出: “x=2” 如果方程没有解,请返回“No solution”。 如0x=10。此时x的系数为0,常数不为0 如果方程有无限解,则返回“Infinite sol
2021-08-26
23
24-两两交换链表中的节点 24-两两交换链表中的节点
24. 两两交换链表中的节点 链表的题目通常可以通过画过程示意图解决 节点虽然入栈了,但是栈中节点之间的指向仍是不变的 /** * Definition for singly-linked list. * struct ListNo
2021-08-23
20
第三章:如何高效进行模幂运算 第三章:如何高效进行模幂运算
labuladong如何高效进行模幂运算 372. 超级次方先把问题分解为子问题 子问题1:如何高效求幂?对应以下题目: 50. Pow(x, n)快速幂解析(分治法角度) 通过x*x,每次x变为x^2; 通过n//2向下取整,n变为原来
2021-08-20
19
2 / 4