自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 统计数组中不同元素出现的次数

这里写自定义目录标题字节题目思路代码实现字节题目有一个正整数数组A[N]每个元取值范围[1,N],统计每个元素出现次数。要求:时间负责度O(n),空间复杂度O(1)输入1 3 2 5 3 1输出1=>22=>13=>25=>1思路常规思路是利用map进行统计,但不满足时间和空间复杂度的要求;正确思路:遍历数组,通过当前元素的值a作为下标,找到下一个元素。最后得到的数组中,下标(因为数组的下标都是从0开始的,所以需要+1)为数组中出现的元素,每个下标对应

2021-08-07 23:44:52 3805 2

原创 配置Centos虚拟机并固定IP

参考[固定IP]https://blog.csdn.net/aoshilang2249/article/details/48681849[连接外网]https://www.cnblogs.com/lfhappy/p/10798400.html[安装zsh]https://blog.csdn.net/weixin_37852133/article/details/82593066

2021-05-06 18:07:31 245

原创 手撕String类

注意:当类中包含了指针类成员时,需要重载拷贝构造函数、赋值函数和析构函数由此面试中经常要求实现出String类的构造函数、拷贝构造函数、赋值函数以及析构函数。其大致如下:class MyString { public: MyString(const char* str = nullptr); //普通构造函数 MyString(const MyString& other); //拷贝构造函数 ~MyString(void);

2021-01-25 22:37:50 378 1

原创 字符串匹配-KMP

这里写自定义目录标题KMP算法KMP算法一直以来对于字符串匹配使用的都是两个循环的方式,了解到KMP算法后,也曾手抄写过这种O(n)的匹配算法,但是理解不深刻,为了怕忘记。在此总结一下:KMP算法主要用来进行字符串匹配,其中的关键在于求前缀表,或者叫next数组、prefix数组。视频讲解了如何手动求next数组;在实际编码中为了方便,,实现时经常将 j-表示前缀尾和最长相同前后缀初值设置为-1,i表示后缀尾初值设置为1。具体编码过程 void getNext(int* next,const

2021-01-14 22:48:47 89

原创 LeetCode151.翻转字符串里的单词—双指针的应用

思路:移除多余空格将整个字符串反转将每个单词反转最初的思路很容易写出因为erase本身就是O(n)的操作,再加上外面嵌套了一个for循环,那么整体的时间复杂度就变为O(n^2).若考虑双指针发来移除空格,最后resize字符串的大小,可达到O(n)的时间复杂度。class Solution {public: //反转字符串中s中左闭右闭的区间[start,end] void reverse(string& s, int start, int end) { .

2021-01-09 13:53:23 127

原创 Leetcode 本地调试环境(C++)

刷题时,经常需要本地调试,特此整理一下如何依照 LeetCode 的样式,输入测试用例以及打印结果,增强结果的可视性。二叉树利用数组生成二叉树,这里以LeetCode第102题层序遍历为例:工具函数TreeNode *ConstructBinaryTree(vector<int>& vec, int len, int i){ if (vec.empty() || len < 1) return nullptr; TreeNode *root = NUL

2020-12-31 11:20:30 2168 1

原创 C++数值计算工具

数值计算库:科学计算领域的标准:BLAS具体实现有OpenBLAS(汇编和C语言)、Intel MKL(针对Intel的特定CPU指令集的汇编代码)、Mir GLAS(D语言编写)LAPACKARPACK1、Eigen纯头文件库;2、Armadillo特点:所有的Armadillo的都定义在arma名空间下;Armadillo在arma::datum下定义包括pi和e在内的一些数学常量;Armadillo支持C++11的列表初始化语法来初始化对象;Armadillo支持

2020-11-13 14:55:47 829

原创 数值分析需要背诵的

文章目录第一章第二章第一章函数值的误差e(y)=y∗−y=f(x1∗−y1∗)−f(x1,x2)e(y)=y^*-y=f(x_{1}^*-y_{1}^*)-f(x_{1},x_{2})e(y)=y∗−y=f(x1∗​−y1∗​)−f(x1​,x2​)第二章定理2.2.1条件定理2.2.1条件定理2.2.1条件1、当x∈[a,b]时,φ(x)∈[a,b]x∈[a,b]时,\varphi(...

2020-10-17 01:18:53 392

原创 「动态规划」 — 高楼扔鸡蛋

题目你面前有一栋从 1 到N共N层的楼,然后给你K个鸡蛋(K至少为 1)。现在确定这栋楼存在楼层 0 <= F <= N,在这层楼将鸡蛋扔下去,鸡蛋恰好没摔碎(高于F的楼层都会碎,低于F的楼层都不会碎)。现在问你,最坏情况下,你至少要扔几次鸡蛋,才能确定这个楼层F呢?动态规划思路:指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系(状态转移方程),逐个求解。直接套用框架:明确这一问题有什么「状态」和「选择」。opt :指代特殊的计算逻辑,通常为 max or min。i,

2020-09-15 20:01:28 208

原创 Visual Studio C++所用版本设置及命令行窗口之间消失问题

所用C++版本检测及选择int main(){ if (__cplusplus == 201703L) std::cout << "C++17\n"; else if (__cplusplus == 201402L) std::cout << "C++14\n"; else if (__cplusplus == 201103L) std::cout <&lt...

2020-03-30 23:35:14 933

原创 数值分析复习要点、书中定理整理以及应当记忆的公式

文章目录数值积分课程小结第一章复习要点第二章复习要点第三章复习要点第四章复习要点第五章复习要点第六章复习要点(主要做题)需要背的公式:需要了解的两种类型来构造求解公式:第七章(要背的公式多一点)要背的公式偏微分方程的应用(考试不考)抛物型方程双曲型方程椭圆型方程数值积分课程小结第一章复习要点第二章复习要点第三章复习要点第四章复习要点第五章复习要点第六章复习要点(主要做题)需要背的公...

2020-01-13 10:02:40 2480

空空如也

空空如也

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

TA关注的人

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