自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不再痛苦的秘密,你找到了吗

我知道我写不出“云想衣裳花想容”,但是我会卡bug

  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 【背包问题详解】【01背包问题】【完全背包问题】【多重背包问题—暴力解法/二进制优化】

01背包(滚动数组优化)(优化到一维数组),完全背包,多重背包(暴力算法)(二进制优化算法)

2023-03-29 09:30:00 946 1

原创 【C++枚举题目】【对整数的每一位进行枚举】【对棋盘(二维数组)九宫格位置的枚举】【有理数的枚举——Cantor表】【连号区间数】【最大公约数和最小公倍数】【日期格式转换问题】

【C++枚举题目】【对整数的每一位进行枚举】【对棋盘(二维数组)九宫格位置的枚举】【有理数的枚举——Cantor表】【连号区间数】【最大公约数和最小公倍数】【日期格式转换问题】

2023-03-06 09:30:00 373

原创 【LeetCode28简单】【实现strStr()】【朴素匹配——找到首位相同字符,截取相同长度字符串,进行比较法】【KMP算法找到第一个子串出现的位置】

【LeetCode28简单】【实现strStr()】【朴素匹配——找到首位相同字符,截取相同长度字符串,进行比较法】【KMP算法找到第一个子串出现的位置】

2022-05-27 12:33:02 163

原创 【LeetCode191简单】【位1的个数】【C++】【右移+&操作检查最后一位是否为1】【循环检查二进制位】【n&(n-1)位运算】【SWAR算法计算汉明重量】

【LeetCode191简单】【位1的个数】【C++】【右移+&操作检查最后一位是否为1】【循环检查二进制位】【n&(n-1)位运算】【SWAR算法计算汉明重量】

2022-05-18 22:05:48 336

原创 【异或运算】【异或的运算性质】【用异或交换两个数字的值】【利用异或来加密算法】【用异或查找数组中只出现一次的数字LeetCode136】

目录【异或运算介绍】【异或的运算法则】【交换两个变量的值】【利用异或加密算法举例】【用异或查找数组中只出现一次的数字】【题目描述】【LeetCode136】【思路】【采用代码如下】【异或运算介绍】“异或”是一个逻辑运算符,异或的数学符号为“⊕”,计算机符号为“xor”。与其他语言不同的一点是,C语言采用“^”表示异或符号,C++既可以采用 xor,又可以采用 “^”;其他语言的“^”一般表示乘方。异或运算也叫半加运算,其运算法则相...

2022-05-15 18:41:56 548

原创 【栈的抽象类定义】【栈判空/进栈/出栈/访问栈顶元素】【顺序栈的抽象类实现】【顺序栈各种操作的性能分析】【链接栈的抽象类实现】

【栈的定义】栈是一种运算受限的线性表,在这种线性表上进行插入和删除运算限定在某一处进行。允许进行插入和删除操作的一端被称为栈顶,另一端称为栈底,这是一种后进先出的结构(Last In First Out,LIFO)或者先进后出(First In Last Out,FILO)。【栈的抽象类定义】template<class elemType>class stack{public://还是将创建一个空的栈的函数利用具体实现类的构造函数来实现 virtual bo...

2022-05-15 10:34:00 297

原创 【双链表的抽象类实现】【C++代码】【插入/删除/查找/定位访问/遍历/清除功能实现】

【双链表的概念】每个结点既保存直接后继结点的地址,又保存直接前驱结点的地址。【双链表的类设计】template<class elemType>class dLinkList :public list<elemType>{private: struct node { elemType data; node* prev, * next; node(const elemType& x, node* p = NULL, node...

2022-05-04 19:48:11 1102

原创 【单链表】【单链表类的设计】【move函数找到第i个结点】【struct结点类】【设置表长currentLength代替每次遍历】

目录【单链表的概念】【单链表类的设计】【几点注意】【各个功能函数的具体实现】【单链表的概念】 相比于顺序表,每个结点增加了一个指针字段,如“next”,该指针指向它的直接后继结点,最后一个结点的next字段为空。一个数据结点由两个部分组成,一个是存储数据元素本身,另外一个存储它的直接后继元素的存储地址。我们对单链表附加了一个头结点,为了在单链表里面插入和删除操作更加方便。【单链表类的设计】template <class elemType&...

2022-05-02 09:30:00 1162

原创 【顺序表类定义】【顺序表各种操作类函数表示】【顺序表容量不够问题的解决——doubleSpace函数】【顺序表优缺点】

目录【概念及类定义】【概念】【类定义】【容量不够的问题】【各个函数的具体实现】【顺序表的优缺点】【概念及类定义】【概念】顺序表即为线性表的顺序存储,线性表结点存放在存储器上一段连续的空间中,即一个数组。因为顺序表在进行插入操作时,需要额外的存储空间,所以在申请内存空间时,要留有余地。【类定义】template<class elemType>class seqList :public list<elemType>//...

2022-05-01 09:30:00 696

原创 【线性表】【线性表的抽象类形式】【无需创建表的操作——利用构造函数】【纯虚析构函数的作用——解决内存泄漏】

【线性表的抽象类形式】把每一个操作都定义成一个纯虚函数,如果该类派生出一个类时,那么要重写这些纯虚函数;如果不重新定义这些纯虚函数,这些纯虚函数就留在了派生类中,那么派生类也变成了一个抽象类,不能真正使用。先放代码如下:template<class elemType>class list{public: virtual void clear() = 0;//清除 virtual int length() const = 0;//长度 virtual...

2022-04-29 21:52:09 154 2

原创 【动态规划】【数字金字塔】【最大子段和】【0-1背包问题】【0-1背包问题的滚动数组优化】【0-1背包问题的一位数组优化】【青蛙跳台阶——动态规划解法】

【动态规划的条件】(1)最优子结构:原问题的最优解是通过子问题的最优解得到的;(2)无后效性:前面状态的决策不会限制到后面状态的决策;(3)重复子问题:一个子问题可以被重复利用到多个父亲状态中。【关键】舍空间而取时间【数字金字塔】【题目描述】给定一个n层的金字塔,求一条从最高点到底层任意点的路径使得路径经过的数字之和最大。(每一步可以走到左下方的点也可以到达右下方的点)【思路】【将思路转换为代码】for(int i=1;i<=n;i...

2022-04-28 11:24:19 617

原创 【斐波那契数列——递推/递归】【卡特兰数】【错位排列】【杨辉三角问题】【递归求阶乘】【将自然数倒序输出——递归法】

【斐波那契数列】【实例引入】兔子繁殖问题:一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?【图示】 可以发现:f ( n ) = f ( n - 1 ) + f ( n - 2)f[1]=1;f[2]=1;for(int i=3;i<=n;i++) f[i]=f[i-1]+f[i-2];【卡特兰数】【实...

2022-04-27 13:53:18 710

原创 【二分查找】【统计x出现的次数】【求方程的解】【循环控制二分查找的次数从而控制精度】【查找x第一次出现的位置】

目录【基本思路】【可视化】【算法实现】【时间复杂度】【简单题目示例】【应用范围】【统计x出现的次数】【求方程的解】【精度问题的讨论】如果我们将精度提高到小数点后15位呢?【查找x第一次出现的位置】【基本思路】我们设定一个初始的L和R,保证答案在[L,R]中,当[L,R]中不止有一个数字的时候,取区间的中点M,询问这个中点和答案的关系,来判断答案是M,还是位于[L,M-1]中,还是位于[M+1,R]中。【可视化】提供一个...

2022-04-26 11:08:36 1615

原创 【经典面试题——青蛙跳台阶】【递归/for循环做法】【跳上n级台阶】【跳上m级台阶】

目录【前言】【题目描述】【思路一——递归】【思路二——for循环】【改写题目一——可以跳上n级台阶】【改写题目二——跳上m阶台阶】【小插曲】【前言】今天刚刚上了本学期第一节算法设计与分析课,这个老师是去年刚刚入职我们学校的,这节课主要是一个算法概述和图灵机的简单了解。其中他在课程的开始,给出一道题目,是一个青蛙跳台阶的题目,据说这道题目是在老师刚刚本科毕业的时候,去人人网面试时遇到的题目,也算是一道经典面试题了,课堂上老师只给出了简单的思路,课下我把这道题...

2022-04-25 15:59:03 1742

原创 C++常用的排序算法【选择排序】【swap函数】【冒泡排序】 【插入排序】【快速排序】【归并排序】【sort函数】【stable_sort函数】【计数排序】

一、选择排序1.基本思路:(1)在寻找第 i 位置的元素时,求出第 i 位到第 n 位的最小值,并记录其位置为 k;(2)交换第 i 位元素和第 k 位元素。2.代码实现:#include<iostream>#include<algorithm>using namespace std;#define N 2000int n;int a[N];int main(){ cin >> n; for (int i = 0.....

2022-04-25 10:47:29 1810

原创 C++各种常见枚举题目【水仙花】【三连击】【枚举矩形】【枚举日期】【枚举RGB区间】【01比特串法子集枚举】【和为3的倍数的子集数】【珠心算】【取宝石问题】

一、枚举1.枚举的概述枚举法是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案的方法。虽然枚举法看起来像是一种“笨办法”,但正是因为拥有强大计算能力的计算机的存在,枚举法也变成一种解决问题的有力工具。枚举法的过程:(1)确定枚举对象,枚举范围,判定条件;(2)枚举可能的解,验证是不是问题的解2.枚举的范例【水仙花数】题目描述:定义水仙花数为一个三位数,它的各位数字的立方和等于其本身,比...

2022-04-22 19:07:56 3008 1

原创 Windows扫雷游戏代码详解【memset函数】

题目描述:

2022-04-19 01:15:03 3591 1

原创 【编译原理】东北大学2022春季大作业之作业一【40%】编译一个TEX项目【已更新】【命令行编译】【texworks编译】【回答了一些问题】

目录前言作业一【编译一个TEX项目】1.开源网站2.任务3.作业完成流程4.一点点小问题前言:【作业内容简介】编译器不仅仅可以编译我们常用的C、C++、Java等程序开发语言,也可以处理各种文本编辑和排版类语言。Tex就是一类常见的文档排版系统,它所处理的对象一般也被称作Tex语言、Tex文本、Tex脚本等。比如,Letex、XeTex、XeLatex都是基于Tex的系统,被经常使用在科技文献的写作和排版中。包括,现在许多会议、...

2022-04-17 21:49:51 2729 15

原创 【算法的评价】【时间限制】【内存限制】【实现难度】【时间复杂度】【空间复杂度】

系列文章目录文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结一、计算机的资源角度评价算法1.时间限制:(1)CPU的运算速度是有限制的:例如:CPU的主频(CPU每秒钟产生脉冲信号的次数/每秒钟的时钟周期个数)从某方面角度可以衡量计算机运算速度的快慢,但其与运算速度不是简单的线性关系。以2.1GHz为例,一秒钟该CPU可以产生2.1*次脉冲信号,如果一台计算机每个时钟周期可以完成1条指令,那

2022-04-16 10:54:37 1107 2

原创 【高精度运算】【高精度数字的存储以及输入输出】【高精度加法/减法/乘法】

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言C++内置的整数类型(如short,int,long long等),最大值都有一个限制,当我们在算法设计的过程中进行更大范围的数值计算中,应该如何.

2022-04-15 16:09:54 2010 4

东北大学2022编译原理实验课——递归下降分析简单算术表达式(C++)

东北大学2022编译原理实验课——递归下降分析简单算术表达式(C++) 【问题描述】 1.设计简单算数表达式语法分析器算法;(用递归下降分析来实现) 2.编写代码并上机调试运行通过。 【输入形式】 简单算数表达式 【输出形式】 True/False 【样例输入】 x+y*(3*a+7)-b/5 x+y*(3*a+7-b/5 【样例输出】 True False

2022-05-11

东北大学2022年编译原理实验课——词法分析——简单扫描器设计(C++实现)此版本为免文件版本

东北大学2022年编译原理实验课——词法分析——简单扫描器设计: 【问题描述】 熟悉并实现一个简单的扫描器,设计扫描器的自动机;设计翻译、生成Token的算法;编写代码并上机调试运行通过。 要求扫描器可识别的单词包括:关键字、界符、标识符和常整形数。 其中关键字表、界符表、标识符表、常整数表如下:(表中没有的关键字、界符等可以接着编号继续扩展) 【输入形式】源程序文件 【输出形式】 相应单词的Token序列; 标识符表,常数表。 【样例输入】 x10=x+y1*120+10; 【样例输出】 注意每行输出最后没有多余空格,最后一行输出后不换行。 Token :(I 1)(P 11)(I 2)(P 8)(I 3)(P 9)(C 1)(P 8)(C 2)(P 13) I :x10 x y1 C :120 10

2022-05-05

空空如也

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

TA关注的人

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