![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习C++
文章平均质量分 87
Krifood
卿之刀戟,不忍相向
展开
-
算法基础(ACWing)
算法基础基础算法快速排序快速排序,背一背板子。一点心得:快速排序不是稳定算法快速排序时间复杂度O(nlogn),空间复杂度是O(longn)虽然没有开辟新的空间但是递归占用了栈空间。主要的优化就是在排序过程中基准数的选择上,单纯固定取左右端点在面对有序数组时时间复杂度将退化为O(n^2)类似冒泡可以使用取中间值法,或者左右端点中间及中间的数三数中去中位数的方法,或者每次使用区间内的的随机数,但是会增大不稳定性还有就是,数据量输入比较大的时候用scanf,小的话可以用cin。#inc原创 2021-09-08 21:28:03 · 568 阅读 · 0 评论 -
LC516.最长回文子串问题
LC:516.最长回文子串问题原题链接题目:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例1:输入:s = "bbbab"输出:4解释:一个可能的最长回文子序列为 "bbbb" 。今天看到最醍醐灌顶的一句话看清dp的本质是带有记事本的暴力循环,只是打表通过状态转移加以剪枝罢了,不是什么很高超的技巧。共勉。定义状态dp[i][j] 表示下标i,j之间的字符串的最大回原创 2021-08-12 18:21:11 · 164 阅读 · 0 评论 -
【解决】 Visual Studio 2019 调用Python文件
【解决】 Visual Studio 2019 调用Python文件很累了,直入主题。我想在visual Studio中调用一个python文件,完成绘图,数据统计处理等工作 (毕竟Python天天杀死Excel)。不太懂Python,网上查了很多很多教程,有的有用,有的没用,这两天干了很多无用功,好在是最后成功了。记录一下踩坑过程。如果您的python已经安装好并且成功进行过python代码调试的话,可以直接跳到vs环境的配置。Python的安装首先,建议一定要从官网下载安装包进行安装!!! 务原创 2021-07-24 23:53:08 · 5705 阅读 · 7 评论 -
[笔记]BFS——两天做了三道题。。。
BFS——两天做了三道题。。。好像是涉及图论了,太高深的不懂,记录下做题过程。BFS简单理解,重点如下几步:从起点状态搜到终点状态(队列实现)初始化 把起点状态压入列表。更新过程:当队列不为空时,每次从队首取一个元素作为这次搜索的起点,当前状态下的每次搜索得到的新合法状态压入队尾,用于下次更新。题目里有死路的情况,死路就是非法状态,直接跳过。那如果遇到以前重复过的状态呢?那也是非法状态,因为已经重复过的路不会再搜到新的合法状态,所以也略过。(略过是用哈希表实现的,每次在哈希表里查一下是否曾经原创 2021-06-27 21:06:13 · 106 阅读 · 0 评论 -
算法与数据结构_队列
队列一、如何理解“队列”?队列是一种操作受限的线性表数据结构。队列最大的特点就是先进先出 (First In First Out,FIFO)。最基本的操作:入队,放一个数据到队列尾部;出队,从队列头部取一个元素。二、顺序队列和链式队列用数组实现的队列叫顺序队列,用链表实现的队列叫链式队列。队列需要两个指针:一个是 head 指针,指向队头;一个是 tail 指针,指向队尾。随着不停地进行入队、出队操作,head 和 tail 都会持续往后移动。当 tail 移动到最右边,即使数组中还有原创 2021-06-25 20:20:10 · 103 阅读 · 0 评论 -
算法与数据结构_栈
栈一、什么是栈?特点总结为先进后出,后进先出 就是**“First In Last Out (FILO)”**这就是典型的“栈”结构。从其操作特性来看,栈是一种“操作受限”的线性表,它只允许从一端进行数据的插入与移除。二、 既然栈不如链表、数组灵活,为什么要用?栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。正因为栈没有数组、链表那样灵活,他暴露出来的接口越少,就越安全。不会很容易出现操作错误特性之所以称为特性,就是因为有特殊的应用场景。当一个数据集只涉及在某端进行数据的插原创 2021-06-24 14:57:30 · 226 阅读 · 0 评论 -
算法与数据结构_链表
链表一、理解指针或引用的含义含义:将某个变量(对象)赋值给指针(引用),实际上就是就是将这个变量(对象)的地址赋值给指针(引用)。示例:p—>next = q; 表示p节点的后继指针存储了q节点的内存地址。p—>next = p—>next—>next; 表示p节点的后继指针存储了p节点的下下个节点的内存地址。二、警惕指针丢失和内存泄漏(单链表)插入节点在节点a和节点b之间插入节点x,b是a的下一节点,,p指针指向节点a,则造成指针丢失和内存泄漏的代码:p—&g原创 2021-06-22 18:14:55 · 248 阅读 · 0 评论 -
【算法】KMP算法学习
【算法】KMP算法学习由三位大佬D.E.Knuth、J.H.Morris、V.R.Pratt同时发现,取三人名字命名KMP其实就是一种改进的字符串匹配算法,关键是利用匹配后失败的信息,尽量减少模式串(W)与主串(T)的匹配次数以达到快速匹配的目的。KMP算法利用已经部分匹配这个有效信息,保持 i 指针不回溯,通过修改 j 指针,让模式串尽量地移动到有效的位置。孤~影 博客为什么位置 k 是 j 需要回溯的位置?(废话一样的证明)参考如下例子:主串: a b c a b c d h i原创 2021-04-25 22:09:55 · 247 阅读 · 0 评论 -
【笔记】C++库函数——bitset
【笔记】C++库函数——bitset看到有大佬掏出这个库函数,一愣。这绝对是未曾想象过的道路,长见识。有时候做题总能碰见稀奇古怪的库函数,每个都令我大开眼界。以后看到感兴趣的都会记录一下,感觉是个好东西,算是学习道路上的小小积累吧,抓紧记录一下。头文件#include <bitset>using std::bitset;定义与初始化bitset<n> b; //b有n位,每位都是0bitset<n> b(u); //b是unsigned long型原创 2021-04-22 20:39:54 · 411 阅读 · 0 评论