WRY

Where Are You?
You are on the brave land,
To experience, to remember...

0%

算法专题练习记录

不再维护!,请参见

基本计算器

基本计算器 i

在线测试 224. 基本计算器

题目描述

实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -非负整数和空格

关键思路

将括号当作一个块儿进行递归处理

基本计算器 ii

在线测试 227. 基本计算器 II

题目描述 实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式仅包含非负整数,+-*/ 四种运算符和空格 。 整数除法仅保留整数部分。

关键思路

建立一个数值栈和一个符号栈

+-的优先级为0,*/的优先级为1

在遇到一个符号的优先级小于或等于符号栈顶元素(若存在)的优先级时弹出栈顶符号进行计算,并再次比较当前符号和栈顶符号(若存在)之间的关系,来判断是否继续向前计算。在符号栈压入当前符号。

字符串读取结束后,将符号栈中所有符号按顺序进行处理后,返回数值栈顶元素作为最终结果

优化 只需要数值栈,减法压入负数,乘除直接计算。

基本计算器 iii

在线测试

772. 基本计算器 III

题目描述

实现一个基本的计算器来计算一个简单的字符串表达式的值。 字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -非负整数和空格

关键思路

递归解决括号的问题。

编译原理中的计算器

TODO 记录一下运算符号之间的优先级和计算策略。

股票投资问题

主要思想分为持有和未持有两种状态,画出状态转移图求解。leetcode题解

数组维数的含义:天数,交易次数,状态(持有 | 未持有)

121. 买卖股票的最佳时机

122. 买卖股票的最佳时机 II

123. 买卖股票的最佳时机 III

188. 买卖股票的最佳时机 IV

309. 最佳买卖股票时机含冷冻期

714. 买卖股票的最佳时机含手续费

蓄水池问题

11. 盛最多水的容器

双指针,贪心算法

容器盛水问题 && 42. 接雨水

解法

  • 计算每个位置能装下的最多的水量(计算纵向距离)
  • 应用单调栈求解(计算横向距离)

407. 接雨水 II

最长上升子序列

穿上衣服我就不认识你了?来聊聊最长上升子序列

300. 最长上升子序列

435. 无重叠区间

452. 用最少数量的箭引爆气球

646. 最长数对链

最长公共子序列

你的衣服我扒了 - 《最长公共子序列》

718. 最长重复子数组

1143. 最长公共子序列

1035. 不相交的线