- 博客(66)
- 资源 (1)
- 收藏
- 关注
原创 字典树(C++)
Trie树,即字典树,是一种哈希树的变种。是一种用于快速查询某个字符串/字符前缀是否存在的数据结构。它的优点是最大限度地减少无谓的字符串比较,查询效率比哈希表高。核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。...
2022-07-17 11:15:45
4876
原创 C++--力扣5 最长回文子串(动规)
题目描述给你一个字符串 s,找到 s 中最长的回文子串。输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。题目链接:力扣5–最长回文子串思路分析及答案除去单个字符一定是回文串,剩下分成两种子串。一种是长度为2或者3的子串,这种只需要判断首尾字符是否相等,因为长度为2的子串首尾相等则肯定是回文串,不相等就不是。长度为3的子串若首尾相等则一定也是回文子串,因为中间只有一个字符。另一种是长度大于3的子串,若首尾元素s[ i ]和s[ j ]不同,则该子串肯
2022-03-12 22:57:43
955
原创 C++实现斐波那契的三种方法
题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。做题链接:力扣–斐波那契数1.法一:迭代class Solution
2022-03-10 16:55:57
8399
原创 C++中对字符串s[0]赋值失败,size()恒为0的解决方法
1.错误场景s初始为空串,其size为0,s[0]是无效的,该访问方式也不合法。#include <iostream>#include <string>using namespace std; int main(){ string s; cout << "size:" << s.size() << endl; s[0]='f'; cout << "size:" << s.size() <<
2022-03-09 19:56:18
1358
原创 C++力扣2--两数相加(思路及代码)
1.题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。2. 思路及代码一开始我固定思维模式,觉得数一定要是高位到低位的排序模式,再从个位开始取。但是由于是单链表,就算逆置链表以后,找到链表最后一个节点,再找导数第二个相加的结点也不现实。后来我发现题目还省力了,低位刚好在链表头,所以可以直接从链表头开始遍历
2022-03-04 12:05:06
611
原创 C++力扣11. 盛最多水的容器(思路及代码)
1.题目描述给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。题目链接:11.盛水最多的容器2.解题思路首先想到的就是暴力解法,两层循环,算出所有值,取最大的,但是超时了,但代码应该没问题。class Solution {public: int maxArea(vecto
2022-03-03 00:40:37
952
原创 关于jsoncpp使用时报错Use StreamWriterBuilder instead
1.jsoncpp相关情况交代github地址配置教程测试代码2.错误情况展示在vs2017下测试后报错如图所示:3.解决方法怀疑是新旧版API的不兼容问题,参考博客新旧版API解决方法使用解决方案1后,依然报错,出现c++异常:std::length_error,断言崩溃等如图。但是长度并不存在越界,最后在jsoncpp的github项目中的issuse找到了解决方案,详细见inssue(#815)具体需可参考这两位提供的解决方式,根据自己的情况更改一些代码。我解决后的代码如
2021-06-05 13:04:39
1386
原创 C++实现从.txt文件中读取数据存入数组,将数组数据写入.txt文件
声明:编译器:vs2017所有用到的.txt文件都是提前放在当前工程目录下的。1.从.txt文件中读取数据,并存入数组#include <iostream>#include <fstream>#include<vector>using namespace std;int main(){ //读取数据文件 ifstream in("datadata.txt", ios::in); if (!in.is_open()) { cout
2021-04-29 15:19:03
30551
22
原创 关于SQL server 2005 连接到服务器的时候提示error 40 解决方法
错误场景很久没用过SQL,今天打开连接的时候,弹出错误。但是忘记保存错误截图了,大概是这个样子,error40:解决百度搜了一大堆,我尝试了如下一些方法:说我连接时的服务器名称与我的计算机名不符,但是我查看了一下是符合的。如果是怀疑自己因为计算机名与里面所填服务器名称不符的,可以参考这个里面的详细教程:https://jingyan.baidu.com/article/5553fa82f76ac965a23934b0.html说数据库引擎没有启动,也就是下图里面的这个SQL Server(
2020-07-01 15:19:03
1929
原创 Linux下一个简单的shell脚本程序
要求:运行脚本程序,结果如下:尊敬的用户,请选择如下功能(按数字即可):1:查看进程信息2:查看用户和主机信息3:显示当前目录信息4:显示Linux创始人5:显示Linux分发版本名称和Linux内核版本6:显示当前的IP地址7:退出并且,当用户输入相应的数字执行对应的功能。1.创建脚本vim myshell.sh2.脚本代码#! /bin/bash
2020-06-30 22:19:25
1054
原创 C++---算法学习笔记之动态规划(一)入门
动归定义:分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。动归的三个特点:把原来的问题分解成了几个相似的子问题。所有的子问题都只需要解决一次。储存子问题的解。动归的四个本质(重要)状态定义状态间的转移方程定义状态的初始化返回结果...
2020-06-29 19:58:31
1225
1
原创 C++蓝桥杯试题集基础练习VIP BASIC 14-30思路解析及代码
本文目录BASIC-24 龟兔赛跑预测BASIC-25 回形取数BASIC-26 报时助手BASIC-27 2n皇后问题BASIC-28 Huffuman树BASIC-29 高精度加法BASIC-30 阶乘计算BASIC-24 龟兔赛跑预测题目描述问题描述 兔子与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s...
2020-04-30 10:33:23
761
原创 2019年高教社杯全国大学生数学建模竞赛 题目回顾及个人体会
本文目录1. 参赛初衷2. 组织队伍3. 竞赛试题1. 参赛初衷我学校在每次国赛前有一个校内选拔赛,本人也是第一次参加建模方面的比赛,对校赛没抱太多希望,我们的校赛题目是一个2. 组织队伍3. 竞赛试题...
2020-04-12 10:55:57
8979
3
原创 浅析:2019高教社杯全国大学生数学建模竞赛题目---B题 “同心协力”策略研究
本文目录1. 题目描述2. 问题分析1. 题目描述B题 “同心协力”策略研究“同心协力”(又称“同心鼓”)是一项团队协作能力拓展项目。该项目的道具是一面牛皮双面鼓,鼓身中间固定多根绳子,绳子在鼓身上的固定点沿圆周呈均匀分布,每根绳子长度相同。团队成员每人牵拉一根绳子,使鼓面保持水平。项目开始时,球从鼓面中心上方竖直落下,队员同心协力将球颠起,使其有节奏地在鼓面上跳动。颠球过程中,队员只能...
2020-04-12 10:46:46
18600
6
原创 C++--unordered系列关联式容器简单介绍及应用代码
声明:本人所有测试代码环境都为vs2017本文目录1. unordered_map2. unordered_multimap3. unordered_set4. unordered_multiset5. 解题应用在 C++11 中,STL 提供了 4 个 unordered 系列的关联式容器,这四个容器底层结构都是哈希桶,所以查找效率都非常快(O(1))。分别是:unordered_map 、...
2020-04-05 17:42:00
424
原创 错误:error C2678: 二进制“运算符”: 没有找到接受“XXX”类型的左操作数的运算符(或没有可接受的转换)解决方法
我是重载运算符的时候,出现了这个错误。代码环境为vs2017.出错代码如下:报错:经过一些查阅对比,我发现,当使用该操作符时,传入的操作数可能是const类型的,但是我重载函数里的形参是非const类型的,所以就会导致报错。解决方法:将形参改为const类型参数即可。这里const主要有两个作用:可以使得该函数既可以接收非const类型参数,又可以接收const类型参数。函数...
2020-03-12 14:57:32
14632
5
原创 C++ 哈希表构造及解决哈希冲突的代码实现
声明:本人所有测试代码环境都为vs2017本文目录:哈希的引入及概念哈希表的构造哈希冲突的产生解决哈希冲突的方法及代码实现一.哈希的引入及概念引入:当在顺序结构(如数组)或者平衡树(平衡二叉树)中查找一个元素时,必须要经过多次与内部元素进行比较的过程,顺序结构的查找时间复杂度为O(N),平衡树的查找时间为Olog(N),其查找的效率都取决于查找过程中元素的比较次数。概念:那么相...
2020-03-09 18:40:45
3231
原创 力扣--27 移除元素 C++
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。思路1.双指针法一个指针用于寻找,跳过值为val的位置。一个指针用于放入非val的值。class Solution {public: int removeElement(...
2020-01-18 00:46:03
211
原创 C++中大小写转换的几种方式
附上力扣原题链接https://leetcode-cn.com/problems/to-lower-case/1.常规法遍历字符串,将大写的字母ASCII码加上32,小写字母ASCII码减去32即可。#include<iostream>#include<string>using namespace std;class Solution {public: ...
2020-01-15 19:29:19
16756
原创 Linux中的进程信号
一.信号的引入假如现在写一个死循环的代码,让显示屏一直输出。这个时候为了让该程序停下来,我们第一下想到的肯定是ctrl+c,那么除此之外,还可以通过ps aux | grep test来查看该程序下正在运行的进程以及所对应的进程号,再使用kill+进程号杀死该进程,也能使程序停下来。那么这两种方式,本质上都是给进程发送了一个信号。二.信号的概念信号是进程之间事件异步通知的一种方式,属于软...
2020-01-09 21:07:09
171
1
原创 C++ 实现 二叉搜索树
1.二叉搜索树的特性1.对于任意节点,比其左子树中任意节点都大,比其右子树中任意节点都小。2.最左侧的节点一定是最小的,最右侧的节点一定是最大的。3.中序遍历:是一个有序序列。2.二叉搜索树的模拟实现首先需要一个节点的结构体,里面包含一个节点所拥有的指向左孩子右孩子的指针pleft和pright,还有当前节点的数据域data这里我准备在二叉搜索树中实现这几个接口:查找,插入,删除,...
2020-01-06 16:01:52
916
原创 Linux下进程中的通信
一.进程通信的概念为什么要进程通信?进程通信:顾名思义,应该是两个进程间进行通信。进程之间具有独立性,每个进程都有自己的虚拟地址空间,进程A不知道进程B的虚拟地址空间的数据内容(类似于一个人不知道另一个人脑子里在想啥)二.进程间通信方式的分类进程间通信方式的共同点:进程间需要“介质”—两个进程都能访问到的公共资源。常见的通信方式:文件(最简单的方法)假如用vim打开一个test...
2020-01-04 17:49:26
134
原创 Linux下的基础IO
一.回顾C语言中的文件接口//写文件 fwrite#include <stdio.h>#include <string.h>int main(){ FILE *fp = fopen("txt", "w"); if(!fp) { printf("fopen error!\n"); } const char *str = "h...
2020-01-01 21:35:38
175
原创 在Linux下面开发一个mini版的shell
整体思路打印一个提示符,让用户输入一个指令。解析输入的指令,找到对应的可执行程序。创建子进程,子进程程序替换,来加载可执行程序。父进程进行进程等待,等待子进程结束。子进程结束,父进程从wait中返回,循环执行1....
2019-12-25 21:29:41
465
原创 Linux下的进程
一.进程的概念说到进程,必须要先说程序。程序:是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)进程:正在执行的程序,每个程序运行起来就会产生进程。也可理解为cpu未完成的工作,在内存中执行,占用系统的资源。举一个例子:程序 → 剧本(纸) 进程 → 戏(舞台、演员、灯光、道具…)同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的...
2019-12-22 17:37:01
403
转载 软件测试技术之: 白盒测试和黑盒测试
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/rl529014/article/details/51556707白盒测试和黑盒测试目录软件测试基本分类…1测试方法…22.1 白盒测试…22.1.1 语句覆盖…22.1.2 判定(分支)覆...
2019-11-26 11:02:02
2998
原创 C++之继承总结
一.继承的概念1.什么是继承?专业术语:继承机制是一种面向对象程序设计可以使代码复用的重要手段,允许程序员在保持原有类特性的基础上进行扩展,是类和类之间的一种关系。举个例子:继承好比汽车与奥迪、奥拓之间的关系,也叫父子关系。汽车是父类,奥迪和奥拓成为派生类(或子类)。子类可以继承父类的属性,也可以新增加自己独特的属性。奥迪和奥拓都继承了汽车有四个轮子,可以载人,可以加油驱动的属性,然而奥迪又...
2019-11-09 16:46:23
534
原创 牛客--替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。整体思路1.因为字符串变化后字符个数肯定会增多,所以要开辟一个新数组。又因为每一个空格都会使得字符串字符数+2,所以长度为原长度+空格数*2.2.从后往前拷,两个指针分别遍历两个数组,在原数组碰到空格时,新数组从后往前依次放入...
2019-10-27 20:57:43
156
转载 size_t和int的区别
(1)size_t和intsize_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;size_t在32位架构上是4字节,在64位架构上是8字节...
2019-10-27 18:13:31
784
原创 力扣--541反转字符串 II
题目描述给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”要求:该字符串只包含小写的英文字母。给定字符串的长度和 k...
2019-10-26 23:35:40
372
原创 力扣--344反转字符串
题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。基本思路用C++来编写,效率高到飞起。让两个迭代器一个从第一个元素开始走,一个从最后一个元素开始走,循环,不停地交换即可。踩过...
2019-10-23 23:35:05
349
原创 牛客网-- 二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路分析我的思路比较简单粗暴,既然是有规律数组,那就按照它的规律来。大概核心思路如下图:细节注意本题的二维数组传参是以vector里套vector的形式给出来的,所以一定要熟悉关于vec...
2019-10-23 00:22:35
205
原创 git push出现的问题
输入命令git push origin master.错误一:一直报错:fatal: ‘origin‘ does not appear to be a git repositoryfatal: Could not read from remote repository.Please make sure you have the correct access rights and the ...
2019-10-23 00:03:16
632
原创 C/C++内存管理---new和delete
一、new/delete 简介new 和 delete 是 C++ 用于管理堆内存的两个运算符,对应于 C 语言中的 malloc 和 free,但是 malloc 和 free 是函数。除此之外,在操作自定义类型时,new在申请内存的同时,会调用对象的构造函数 delete在释放内存之前,会调用对象的析构函数,清理对象中的资源。而malloc只会申请内存,free只会释放内存。new 运...
2019-09-23 14:41:39
211
原创 数据结构--给定一个链表,返回链表开始入环的第一个节点,无环返回NULL
这个题目我们需要考虑两种情况:1.入环点为头节结,这个就是上一篇博客的题目,在这里不再多说。2.入环点不是头结点,如下图。核心思路:多余部分到入环结点的长度=相遇点到入环结点的长度。1.先定义一个快指针一个慢指针,找到该链表的相遇点。2.快慢指针中的任意一个指针从相遇点出发,定义一个头指针从头结点出发,找到的公共节点就是头结点。代码实现#include<stdio.h>#...
2019-09-05 19:32:04
641
1
原创 数据结构--给定一个链表,判断链表中是否有环
这个问题可以用我们小学时期奥数题里面的经典:相遇问题来解决。思路:,找两个指针,起始都指向头部,循环向后走。每一次循环,一个指针一次性走两步,另一个一次性走一步。如果两个指针能够相遇,则证明这个链表成环。如果直到两指针中的任意一个指向空了,就代表该链表无环。判断函数如下:SListNode *JugdeCircle(SListNode *head){ SListNode *fast = ...
2019-08-24 23:48:03
384
TravelWeb.rar
2020-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人