LeetCode 剑指Offer 20. 表示数值的字符串

这是 2020 年 9 月 2 日的每日一题。这道题本身并不难,但是让我明白了一个自动机的概念。直接来看题吧。题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。我的思路首先我们可以写出一个

- 阅读全文 -

LeetCode 647. 回文子串

这是 2020 年 8 月 19 日的每日一题。这道题我是用 动态规划 解出来的。但是这题的 动态规划 效果反而不如暴力优化。可以说这道题让我明白了 动态规划 不能滥用。特此记录一下。647. 回文子串难度:中等题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1输入:"abc"

- 阅读全文 -

LeetCode 546. 移除盒子

这是 2020 年 8 月 15 日的每日一题。这道题我没写出来,是看题解的,这道题如果用常规的动态规划思路,很容易进入误区。特此记录一下。主要学到了以下两点:动态规划的 dp 函数可以是多元的,当二元无法表达状态转移的时候,尝试加多一维,具体第三维可以表示什么,这道题给出了一种思路。当动态规划的状态转移方向难以确定的时候,可以使用 递归 + 记忆化 的形式。虽然比迭代要占用更多的空间复杂度,但是

- 阅读全文 -

LeeCode 227. 回文串

这是 2020 年 8 月 6 日 的每日一题。因为昨天断网了,今天补更新。这道题主要是涉及到一种新的数据结构 - 字典树。之后可能会写博客记录一下。现在先看题吧。336. 回文对难度:困难题目给定一组 互不相同 的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1输入:["abcd",&quo

- 阅读全文 -

LeetCode 207. 课程表

这是 2020 年 8 月 4 日的每日一题。拓扑排序的典型例题。在之前矩阵最长递增路径的题中最后就有预感,现在它来了。207. 课程表难度:中等题目你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判

- 阅读全文 -