- 博客(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 <<...
2020-03-30 23:35:14
933
原创 数值分析复习要点、书中定理整理以及应当记忆的公式
文章目录数值积分课程小结第一章复习要点第二章复习要点第三章复习要点第四章复习要点第五章复习要点第六章复习要点(主要做题)需要背的公式:需要了解的两种类型来构造求解公式:第七章(要背的公式多一点)要背的公式偏微分方程的应用(考试不考)抛物型方程双曲型方程椭圆型方程数值积分课程小结第一章复习要点第二章复习要点第三章复习要点第四章复习要点第五章复习要点第六章复习要点(主要做题)需要背的公...
2020-01-13 10:02:40
2480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人