自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 单调栈-最大矩形

一、引言给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。来源:力扣(LeetCode)LeetCode-84. 柱状图中最大的矩形二、单调栈1、栈中维护数组的下标,栈中下标对应的数组值升序排列。栈中初始化-1结点,起始标记。2、O(n)遍历数组中每个值,对第i个值有两种情况(1)prev == -1 || heights[i] >= heights[prev]:下标i入栈...

2020-10-13 13:57:06 536

原创 有限状态机

一、引言使用leetcode原题“有效数字”,给定一个字符串,判断是否可以转为十进制数,包含科学计数法、正负数、小数等。来源:力扣(LeetCode)LeetCode-65. 有效数字二、有限状态机FSM有限状态机本质为一个状态转移图,要素为图中各个结点的状态,以及状态之间的转移动作。1、定义单步转移动作,定义函数movement()将当前到来的字符表示为动作编号。2、定义状态转移图,使用邻接矩阵FSM[11][6]表示该状态转移图。其中 行数11表示状态结点数目...

2020-10-02 16:43:45 204

原创 Manacher算法-最长回文子串

一、引言给定一个字符串s,找到s中最长的回文子串。O(n)时间复杂度。来源:力扣(LeetCode)LeetCode-5. 最长回文子串二、Manacher算法1、该算法通过依据回文子串中心字母考虑,所以首先在源字符串中每个字符间插入特殊符号,拼凑为奇数个字符的串。(包括字符串首尾:方便最终截取答案回文子串)2、该算法流程为单次扫描,每个字符只扫描一次。所以记录如下变量:(1)maxl:扫描到的最大的右边界下标(2)maxi:最大右边界所对应的回文子串的中心...

2020-10-02 16:30:05 115

原创 凸包

一、引言凸包(Convex Hull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的凸组合来构造。通俗来说,如果给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集合中所有的点。下图中外部的5个点就组成了这个点集的一个凸包可以了解到凸包...

2018-08-03 23:12:42 2921

原创 状态压缩DP

       状态压缩DP是动态规划更复杂的问题,通常使用动态规划来解决整数类型的问题,比如0-1背包这些典型的动态规划例子。但是,也可以对整数以外的更复杂的类型采用动态规划,而这类记录不同时刻状态的一种动态规划就是状态压缩动态规划。       顾名思义,状态压缩DP,我们的记录不再代表一个整数,而表示了某种状态,通常采用二进制形式表达。        旅行商问题(TSP, Trav...

2018-07-28 19:27:33 164

原创 二分搜索的其他用法

       二分搜索,最常见的是在有序数组中最快地查找某个特定的值,但是二分搜索也有一些别的用处,利用二分搜索的特性,当某个集合按某个特性“有序”时,我们就可以很好地利用二分搜索来找到所需的元素,而不是仅仅局限在最初所学的用途上。一、基础二分搜索在讨论别的用途前,先考虑下最基础的用法,也就是如何在一个数列中找到符合条件的值。来看一道例题:       1、已知有n个正整数a0, ...

2018-07-26 19:30:37 423

原创 C++ 顺序容器库简介

一、引言       C++标准库提供了几种顺序容器,所有顺序容器都提供了快速顺序访问元素的能力,但是,它们各自有不同的特性。新标准库的容器的性能有很大的提升,从某种程度讲,应该使用标准库容器,而不是原始的数据结构。vector 可变大小数组,比较常用 deque 双端队列 list 双向链表 forward_list 单向链表 array 固...

2018-07-25 23:00:50 120

原创 C++ I/O

引言:为了支持不同种类的I/O处理操作,标准库定义了一些别的I/O类型:  <iostream>  <fstream>  <sstream>ofstream out1, out2;out1=out2; //错误:不能对流对象进行赋值ofstream print(ofstream); //错误...

2018-07-25 19:06:15 170

原创 关于C++ const 的用法介绍

一、引言              有时我们希望定义一种变量,它的值不会被改变,可以根据实际需要通过某种方式调整,也可以警惕防止程序一不小心改变这个值,我们以前常用#define来实现这个功能。但是,有时出于某些因素,我们使用 const 对变量类型加以限定。       const int bufsize=512;   //缓冲区大小 二、const初始化问题       ...

2018-07-25 17:18:11 228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除