
算法
文章平均质量分 93
ZS_Wang_Blogs
嵌入式兴趣爱好者,为嵌入式而生
展开
-
C++ 链表、栈、队列
一、C++ 链表链表实际上是线性表的链式存储结构,与数组不同的是,它是用一组任意的存储单元来存储线性表中的数据,存储单元不一定是连续的,且链表的长度不是固定的,链表数据的这一特点使其可以非常的方便地实现节点的插入和删除操作1.1 几种链表的介绍1.1.1 单向链表单向链表很容易理解,就说把指针当成一条链一样连接每一个节点,每个节点包含了一个或者多个数据。链表的存储单元不一定是连续的,长度不固定,主要用于方便实现节点的插入和删除操作。官方的话这里就不说了,作为数据结构里最基本的,感兴趣的童鞋自.原创 2021-12-05 12:43:03 · 4769 阅读 · 2 评论 -
C++ 哈希表
什么是哈希表map、hash_map、unordered_map的引入unordered_map的用法1. 什么是哈希表1.1 哈希表的定义“散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。从上面的百度百科,我们小白可以知道3点:哈希表也叫散列表哈希表是一个数据结构散列表是数组.原创 2021-11-24 10:50:22 · 41265 阅读 · 20 评论 -
C++ vector库的用法
本文将分4点介绍C++ vector库的用法vector的初始化vector对象的操作2.1 vector迭代器vector整体操作vector查找1. vector的初始化赋值头文件:#include < vector>类型:vector<int/char/string/基本数据类型/自定义类型/结构体类型/…>vec ;(1)vector<int> a(10); //定义了10个整型元素的向量,初值为0(2)vector<int>原创 2021-11-19 11:43:15 · 5214 阅读 · 0 评论 -
lin的题目
一.反转字符串/*将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。输入参数: inputString:输入的字符串返回值: 输出转换好的逆序字符串*/#include <iostream>#include <algorithm>#include <string>#include <vector>using nam...原创 2020-09-16 17:33:18 · 587 阅读 · 0 评论 -
二叉树算法
本文包括:1.前序遍历、中序遍历、后序遍历、层序遍历的算法写法2.根据3种遍历其二,重构二叉树3.判断二叉树B是不是二叉树A的子结构4.二叉树的镜像1、遍历ps: 二叉树常用的遍历方式有:前序遍历、中序遍历、后序遍历、层序遍历四种遍历方式(1)前序遍历(根左右) a、访问根节点;b、前序遍历左子树;c、前序遍历右子树。(2)中序遍历(左根右) ...原创 2019-09-04 11:08:43 · 603 阅读 · 0 评论 -
C++中string、char *、char[]的转换
一、string转char* 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); 1.data()方法,如:1 string str = "hello";2 const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式 同时有一点需要说...原创 2019-05-07 17:24:30 · 154 阅读 · 0 评论 -
算法——约瑟夫问题
约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。测试样例:5 3返回:4思路:动态规划法把n个人的编号改为0~n-1,然后对删除的过程进行分析。第一个删除的数字是...原创 2019-05-08 22:17:16 · 312 阅读 · 1 评论 -
Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
递归读取#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dirent.h>#include <unistd.h>int readFileList(char *basePath){DIR *dir;str...原创 2019-04-29 09:56:39 · 1684 阅读 · 0 评论 -
c++的string类
博文仅是博主学习过程中的笔记,如有问题,可联系博主C++string类总结一、string的初始化首先,为了在程序中使用string类型,必须包含头文件 <string>。如下: #include <string>注意这里不是string.h,string.h是C字符串头文件。string类是一个模板类,位于名字空间std中,通常为方便使用...转载 2019-04-23 21:32:35 · 153 阅读 · 0 评论 -
算法之字符串转整数,整数转字符串
今天做了虎牙直播的最后一道算法,真是受益匪浅,但是当时写得有点复杂,之后重新简化一遍,看题:分析:看这个题的时候,整数和字母拼在一起,整数作为的是字符,要做的是转成整形,还要注意负号。关键:使用string+string拼接 使用int n=stoi(res, 0, 10)转成10进制整数代码:#include<iostream>using nam...原创 2019-04-23 21:10:44 · 539 阅读 · 0 评论 -
vector实用算法(1)——排序
题目描述(选自剑指之把数组排成最小的数)输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: string PrintMinNumber(vector<int> numbers) { ...原创 2019-04-22 16:17:45 · 2281 阅读 · 0 评论 -
输入未知大小数组保存输出(可去空格)——vector
字符:#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){vector<char>vec;char ch=0;while (ch!='\n')...原创 2019-04-22 10:03:43 · 741 阅读 · 0 评论 -
数组、字符串
1.替换空格2.二维数组的查找3.替换字符串、删除字符串4.冒泡排序5.数组倒序6.二分查找1.替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public:void replaceSpace(char ...原创 2019-04-22 10:01:07 · 130 阅读 · 0 评论 -
二叉树
1.题目(重构二叉树)输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。class Solution {public:TreeNode* reConstructBinaryTree(vec...原创 2019-04-22 09:55:43 · 171 阅读 · 0 评论 -
给定一个m行n列有序矩阵,查找数k的最优算法的最坏情况复杂度?
下面是最优算法:记矩阵的右上角(左下角也可以)元素为a,搜索起点设置为a,要查找的元素为k:若a>k,则a所在列的所有元素均大于k,搜索位置左移1位,然后删除该列构成新的矩阵;若a<k,则a所在行的所有元素均小于k,搜索位置下移1位,然后删除该行构成新的矩阵;若相等,结束查找;由新构成的矩阵利用上述方式继续查找(递归调用)。该最优算法的最坏情况也就是说从右上角...原创 2019-04-21 21:47:51 · 629 阅读 · 0 评论