
C++
南叔先生
QQ:904762096
展开
-
C++ STL 容器相关知识
一、概述 二、Template三、容器对比3.2顺序容器名称 说明 方向 迭代器失效 插入 删除 查找 场景 常用函数 string 字符串、顺序、随机访问 —— 插入失效,删除不会 尾端O(1)非尾端P:O(N-P) 尾端O(1)非尾端P:O(N-P..原创 2022-05-09 22:15:10 · 540 阅读 · 0 评论 -
华为机考模拟题
// we have defined the necessary header files here for this problem.// If additional header files are needed in your program, please import here.int main(){ // please define the C++ input here. For example: int a,b; cin>>a>>b;; ...原创 2022-04-06 13:54:25 · 1606 阅读 · 0 评论 -
华为机考108题(c++)(101-108)
HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序描述输入整型数组和排序标识,对其元素按照升序或降序进行排序 数据范围: 1≤n≤1000,元素大小满足 0≤val≤100000输入描述:第一行输入数组元素个数第二行输入待排序的数组,每个数用空格隔开第三行输入一个整数0或1。0代表升序排序,1代表降序排序输出描述:输出排好序的数字方法一:数组法#include <iostream>#include <al...原创 2022-04-04 09:29:01 · 863 阅读 · 0 评论 -
华为机考108题(c++)(91-100)
HJ91 走方格的方案数描述请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。注:沿棋盘格之间的边缘线行走数据范围: 1≤n,m≤8输入描述:输入两个正整数n和m,用空格隔开。(1≤n,m≤8)输出描述:输出一行结果方法一:递归#include<iostream>#include<vector>us.原创 2022-04-03 20:20:09 · 3163 阅读 · 1 评论 -
华为机考108题(c++)(81-90)
HJ81 字符串字符匹配描述判断短字符串S中的所有字符是否在长字符串T中全部出现。请注意本题有多组样例输入。数据范围:1≤len(S),len(T)≤200进阶:时间复杂度:O(n),空间复杂度:O(n)输入描述:输入两个字符串。第一个为短字符串,第二个为长字符串。两个字符串均由小写字母组成。输出描述:如果短字符串的所有字符均在长字符串中出现过,则输出字符串"true"。否则输出字符串"false"。方法一: find()#include <iostr原创 2022-04-03 19:56:00 · 832 阅读 · 0 评论 -
华为机考108题(c++)(70-80)
HJ70 矩阵乘法计算量估算描述矩阵乘法的运算量与矩阵乘法的顺序强相关。例如:A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。编写程序计算不同的计算顺序需要进行的乘法次数。数据范围:矩阵个数:1≤n≤15 ,行列数:1≤rowi,coli≤100 ,保证给出的字符串表示的计算顺序唯一。进阶:时间复杂度:O(n) ,空间复杂度:O(n)输入描述原创 2022-04-03 19:17:42 · 879 阅读 · 0 评论 -
华为机考108题(c++)(62-69)
HJ62 查找输入整数二进制中1的个数描述输入一个正整数,计算它在二进制下的1的个数。注意多组输入输出!!!!!!数据范围: 1≤n≤231−1输入描述:输入一个整数输出描述:计算整数二进制中1的个数解法一:运用位运算进行操作#include <iostream>using namespace std;int n, res; // 定义我们输入的 n 和我们最后的二进制1的个数void solve() { while(cin >&g原创 2022-04-03 15:35:42 · 743 阅读 · 0 评论 -
华为机考108题(c++)(52-61)
HJ52 计算字符串的编辑距离描述Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家 Levenshtein 提出的,故又叫 LevenshteinDistance 。例如:字符串A: abcdefg字符串B: abcdef通过增加或是删掉字符 ”g” 的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义..原创 2022-04-03 15:14:50 · 1814 阅读 · 0 评论 -
华为机考108题(c++)(41-51)
HJ41 称砝码描述现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ;每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。注:称重重量包括 0数据范围:每组输入数据满足 1≤n≤10 , 1≤mi≤2000 , 1≤xi≤10输入描述:对于每组测试数据:第一行:n --- 砝码的种数(范围[1,10])第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])原创 2022-04-03 14:49:18 · 1524 阅读 · 0 评论 -
华为机考108题(c++)(31-40)
HJ31单词倒排描述对字符串中的所有单词进行倒排。说明:1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;数据范围:字符串长度满足1≤n≤10000输入描述:输入一行,表示用来倒排的句子输出描述:输出句子的倒排结果方法一:正向统计,逆序输出#include<...原创 2022-04-03 14:27:53 · 1085 阅读 · 0 评论 -
华为机考108题(c++)(22-30)
HJ23 删除字符串中出现次数最少的字符描述实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。数据范围:输入的字符串长度满足1≤n≤20,保证输入的字符串中仅出现小写字母输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。方法一:暴力解法#include<iostre...原创 2022-04-03 14:04:14 · 2207 阅读 · 0 评论 -
华为机考108题(c++)(17-22)
HJ17坐标移动描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;$%$;YAD;等。下面是一个简单的例子如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,...原创 2022-04-03 13:46:38 · 2252 阅读 · 0 评论 -
华为机考108题(c++)(1-16)
HJ1 字符串最后一个单词的长度描述计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。输出描述:输出一个整数,表示输入字符串最后一个单词的长度。方法一#include<iostream>#include<string> using namespace std; int main(){ string s; ge原创 2022-04-03 12:52:39 · 5680 阅读 · 0 评论 -
C++查看变量类型办法(typeinfo)
一、类型含意bool: bchar: csigned char: aunsigned char: h(signed) short (int): sunsigned short (int): t(signed) (int): iunsigned (int): j(signed) long (int)原创 2022-04-02 21:53:31 · 7603 阅读 · 0 评论 -
C++_Leetcode刷题之路——简单(持续更新)
1. 两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class Solution {public: vector<int> twoSum(vector<int>&...原创 2021-08-13 09:59:43 · 1264 阅读 · 0 评论 -
深入理解数据结构——查找算法
#include <iostream>#include <string>using namespace std;typedef int EtypeKey;typedef int DataType;struct EType { EtypeKey key; DataType data;};struct LinearList { //查找表类型 EType* elem;//指向顺序表的指针 int len; int maxsize;};//顺序查找算.原创 2021-08-10 20:38:51 · 226 阅读 · 0 评论 -
深入理解数据结构——排序算法C++实现
目录一、插入排序(1)直接插入排序(2)折半排序(3)希尔排序二、交换排序(1)冒泡排序(2)快速排序三、选择排序(1)直接选择排序(2)堆排序四、归并排序(1)二路归并排序五、基数排序(桶排序)(1)二维数组桶排序(2)链式存储结构桶排序0总览1、内部排序方法比较 排序方法 最好情况 平均时间 最坏情况 辅助空间 稳定性 负责性 直接插入 O(n) O(n^2) O.原创 2021-08-10 16:02:35 · 287 阅读 · 0 评论 -
深入理解数据结构——数组、矩阵
#include <iostream>#include <string>using namespace std;typedef int EType;struct SYMMATRIX { EType *elem;//通过创建获取相应空间 int bounds;};//矩阵相加算法int AddMatrix(SYMMATRIX A, SYMMATRIX B, SYMMATRIX &C) { if (A.bounds != B.bounds) r.原创 2021-08-09 22:22:46 · 169 阅读 · 0 评论 -
深入理解数据结构——关键路径算法AOE
#include<iostream>#include<string>using namespace std;//邻接表的实现typedef int InfoType;struct AdjNode { int another_vertex;//该条边另一个顶点在表头节点数组中的下标 InfoType info;// AdjNode* next;//下一个节点地址};typedef char EType;struct AdjList { int ind.原创 2021-08-09 21:19:57 · 475 阅读 · 0 评论 -
深入理解数据结构——图
#include<iostream>#include<string>using namespace std;struct Graph { int** data; int vertex_num;//顶点数量 int edge_num;//边数};//基于邻接矩阵表示的有向带权图的建立算法void CreateGraph(Graph &g) { int n, first, second; cout << "请输入边的数量"; cin .原创 2021-08-09 20:45:09 · 210 阅读 · 0 评论 -
深入理解数据结构——哈夫曼树
#include <iostream>#include <string>using namespace std;typedef char EType;////利用链表实现:哈夫曼树中的节点结构定义为//struct HuffmanNode {// int weight;//权值// EType data;//Node information// HuffmanNode* next;//后继节点// HuffmanNode* LChird;//zuo孩节点//.原创 2021-08-09 16:30:53 · 247 阅读 · 0 评论 -
深入理解数据结构——二叉树应用
#include <iostream>#include <string>using namespace std;typedef char Etype;struct EType { Etype key;};struct BinaryTreeNode { EType data; BinaryTreeNode* LChird;//左孩地址 BinaryTreeNode* RChird;//右孩地址};typedef BinaryTreeNode* .原创 2021-08-09 15:30:27 · 135 阅读 · 0 评论 -
深入理解数据结构——二叉树线索树基本操作
#include <iostream>#include <string>using namespace std;typedef char EType;struct BinaryTreeNode { EType data; BinaryTreeNode* LChird;//左孩地址 bool Lflag; BinaryTreeNode* RChird;//右孩地址 bool Rflag;};typedef BinaryTreeNode* BinaryTr.原创 2021-08-09 13:35:44 · 335 阅读 · 0 评论 -
深入理解数据结构——二叉树基本操作
#include <iostream>#include <string>using namespace std;typedef char EType;struct BinaryTreeNode { EType data; BinaryTreeNode* LChird;//左孩地址 BinaryTreeNode* RChird;//右孩地址};typedef BinaryTreeNode* BinaryTree;//前序遍历:首先访问根节点,然后遍历左子.原创 2021-08-06 13:56:56 · 248 阅读 · 0 评论 -
深入理解数据结构——划分子集算法
#include <iostream>#include <string>using namespace std;typedef int EType; // 自定义链表的数据元素为整数。//定义队列顺序存储结构struct Queue{ QType* element; // 存放结点的数据元素。 int front; //对头节点 int rear; //队尾节点 int maxsize; //队列最大容量};.原创 2021-08-04 14:40:33 · 741 阅读 · 0 评论 -
深入理解数据结构——列车重排算法
#include <iostream>#include <string>using namespace std;typedef int EType; // 自定义链表的数据元素为整数。struct QType { int number;};//定义队列顺序存储结构struct Queue{ QType* element; // 存放结点的数据元素。 int front; //对头节点 int rear; //队尾节.原创 2021-08-04 13:45:08 · 1369 阅读 · 0 评论 -
深入理解数据结构——队列链式存储
#include <iostream>#include <string>using namespace std;typedef int EType; // 自定义链表的数据元素为整数。//定义队列顺序存储结构struct QueueNode{ EType data; //当前节点数据 QueueNode *next; //下一节点地址};typedef int HeadEType; // 自定义链表的数据元素为整数。//定义队列顺.原创 2021-08-03 17:02:01 · 143 阅读 · 0 评论 -
深入理解数据结构——队列顺序存储
#include <iostream>#include <string>using namespace std;typedef int EType; // 自定义链表的数据元素为整数。//定义队列顺序存储结构struct Queue{ EType *element; // 存放结点的数据元素。 int front; //对头节点 int real; //队尾节点 int maxsize; //队列最大容量};/.原创 2021-08-03 17:00:20 · 270 阅读 · 0 评论 -
深入理解数据结构——堆栈应用(四染色算法)
#include <iostream>#include <string>using namespace std;typedef char Etype;/************************背包问题*************************/#define PRODUCTS ETypestruct PRODUCTS { char name[8]; int weight; int number; char place[20];};.原创 2021-08-03 15:48:41 · 650 阅读 · 0 评论 -
深入理解数据结构——堆栈应用(背包体积)
#include <iostream>#include <string>using namespace std;typedef char Etype;/************************背包问题*************************/#define PRODUCTS ETypestruct PRODUCTS { char name[8]; int weight; int number; char place[20];};.原创 2021-08-03 14:16:25 · 305 阅读 · 0 评论 -
深入理解数据结构——堆栈应用(括号匹配)
#include <iostream>#include <string>using namespace std;typedef char Etype;//顺序存储堆栈struct Stack { Etype* element; int top; int maxsize;};//创建空堆栈void CreateStack(Stack& S, int MaxStackSize) { S.maxsize = MaxStackSize; S.el.原创 2021-08-03 13:19:16 · 289 阅读 · 0 评论 -
深入理解数据结构——链式堆栈的基本操作
#include <iostream>#include <string>using namespace std;typedef int Etype;//定义堆栈数据类型struct StackNode { Etype data; StackNode* next;//指向下一个Node};typedef int HeadEtype;//链式栈表表头结构struct HeadNode { HeadEtype Hdata; StackNode* top;.原创 2021-08-02 21:49:24 · 273 阅读 · 0 评论 -
深入理解数据结构——堆栈的基本操作
#include <iostream>#include <string>using namespace std;typedef int Etype;//顺序存储堆栈struct Stack { Etype* element; int top; int maxsize;};//创建空堆栈void CreateStack(Stack &S,int MaxStackSize){ S.maxsize = MaxStackSize; S.eleme.原创 2021-08-02 20:32:29 · 674 阅读 · 0 评论 -
深入理解数据结构——链表应用
#include <iostream>#include <string>using namespace std;typedef int Etype; // 自定义链表的数据元素为整数。//定义数据元素节点结构typedef struct ChainNode{ Etype data; // 存放结点的数据元素。 ChainNode* next; // 指向下一个结点的指针。};//ChainNode* p; //p是指向数据元.原创 2021-08-02 18:22:07 · 187 阅读 · 0 评论 -
深入理解数据结构——模拟链表
#include <iostream>#include <string>using namespace std;typedef int Etype; // 自定义链表的数据元素为整数。//定义数据元素节点结构typedef struct SimNode{ Etype data; // 存放结点的数据元素。 int next; // 存放下一个元素地址。};typedef string HeadEtype; .原创 2021-08-01 15:43:01 · 250 阅读 · 0 评论 -
深入理解数据结构——双向链表
(一)在第k的元素后插入x#include <iostream>#include <string>using namespace std;typedef int Etype; // 自定义链表的数据元素为整数。//定义数据元素节点结构typedef struct DoubleNode{ Etype data; // 存放结点的数据元素。 DoubleNode* next; // 指向下一个结点的指针。 DoubleN..原创 2021-07-31 14:30:39 · 164 阅读 · 0 评论 -
深入理解数据结构—简单链表
(1)简单链表结构#include <iostream>#include <string>using namespace std;typedef int Etype; // 自定义链表的数据元素为整数。//定义数据元素节点结构typedef struct ChainNode{ Etype data; // 存放结点的数据元素。 ChainNode* next; // 指向下一个结点的指针。};//ChainNode* p原创 2021-07-30 14:53:52 · 537 阅读 · 0 评论 -
不同编程语言语言的适用场景
1、如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处?2、二十五岁零基础转行做软件测试怎么样?3、软件测试中的自动化测试一般要会什么编程语言?4、Which Programming Language Should I Learn First?5、编程语言搜索排行榜6、常见编程语言的适用场合(1)嵌入式,操作系统:C(2)网页开发:javaScript,CSS,HTML、PHP(小型web快速开发)(3)统计分析:R(4原创 2021-07-23 17:42:09 · 4032 阅读 · 1 评论 -
C++ 单链表数据操作
/* * 此程序演示带头结点的单链表的实现,数据元素是整数。*/#include <stdio.h>#include <string.h>#include <stdlib.h>typedef int ElemType; // 自定义链表的数据元素为整数。typedef struct LNode{ ElemType data; // 存放结点的数据元素。 struct LNode *next; // 指向下一个结点的指针。.原创 2021-07-22 21:40:14 · 413 阅读 · 0 评论 -
C++系列-基础
原创 2021-07-20 12:31:34 · 101 阅读 · 0 评论