算法
一天学习一兜兜
这个作者很懒,什么都没留下…
展开
-
c++正则通配符问题
文章目录前言一、题目二、思路分析三、动态规划解法 前言 正则表达式是一个非常有强力的工具,其中点号[.]可以匹配任意一个字符,星号[*]可以让之前的那个字符重复任意次数(包括0次)。 一、题目 给我们输入两个字符串s和字符串p, s代表文本,p代表模式串,请你判断模式串p是否可以匹配文本s.我们可以假设模式串只包含小写原创 2020-09-01 11:02:18 · 672 阅读 · 0 评论 -
算法之二分查找问题详解
文章目录前言1. 二分查找框架2. 寻找一个数3. 寻找左侧边界的二分搜索4. 寻找右侧边界的二分搜索 前言 二分查找:思路简单,细节是魔鬼。 它真的坑根本就是在于要mid加一还是减一,while里到底用 <=还是<。 讨论三个二分查找场景:寻找一个数,寻找左侧边界,寻找有右侧边界。 1. 二分查找框架 int binarySearch(vector<int> nums, int target) { int left = 0, right = ...; while (..原创 2020-08-30 11:23:24 · 126 阅读 · 0 评论 -
算法之动态规划详解
一. 基本知识 动态规划问题的一般形式就是求最值;求动态规划的核心问题是穷举。 动态规划三要素:重叠子问题、最优子结构、状态转移方程(最难的)。 重叠子问题可以通过备忘录或者DP table 来优化穷举,避免不必要的计算。 最优子结构通过子问题的最值得到原问题的最值。 动态规划的一般流程就是三步:暴力的递归解法 -> 带备忘录的递归解法->迭代的动态规划解法 二. 辅助思考状态转移方程的思维框架 明确[状态] -> 定义dp数组/函数的含义 -> 明确[选择] -> 明确原创 2020-05-28 11:29:20 · 229 阅读 · 0 评论