![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 59
foolish-wanwan
喜欢科比
展开
-
C语言中字符和字符函数
文章目录求字符串长度-strlen字符串拷贝 strcpy字符串追加 strcat求字符串长度-strlensize_t strlen(const char *str) char arr[] = "kobe"; int len = strlen(arr); cout << len << endl;//4***:strlen计算的是"**\0**"之前的数据长度 :参数指向的字符串必须以“\0”结束 :函数的返回值为size_t,是无符原创 2021-11-03 10:16:44 · 154 阅读 · 0 评论 -
C++指针
文章目录指针定义指针空指针和野指针const修饰指针1:常量指针2:指针常量3:const既修饰指针又修饰常量指针和数组指针和函数指针 函数 数组指针用来存放地址的变量定义指针 int a = 2;//定义变量 int *p = &a;//定义指针变量 cout << "a的地址为:"<<p << endl;//a的地址为:009FF7C0空指针和野指针空指针:指针变量指向内存中编号为0的空间用途:初始化指针变量注意:空指针指向的内容是不可原创 2021-05-18 17:27:38 · 78 阅读 · 0 评论 -
C++STL总结详解
用C++刷题很久了,对用到的STL做个总结,方便以后查阅学习。文章目录STL的诞生STL中的容器、算法和迭代器vector容器vector插入数据vector也可以存放自定义的数据类型,嵌套vector存放数据,并用迭代器遍历vector删除元素vector互换容器vector预留空间string容器基本概念构造函数赋值操作string拼接操作string查找和替换string比较string字符存取string插入和删除string子串STL的诞生C++的面向对象和泛型编程思想,目的是复用性的提升。原创 2021-05-05 21:32:55 · 379 阅读 · 0 评论 -
STL中next(),advance(),prev(),next_permutation()函数
文章主要内容next()函数advance()函数prev()函数lower_bound()函数upper_bound()函数next()函数next意为下一个,用来获取一个距离指定迭代器n个元素的迭代器。next()函数的语法格式如下:template <class ForwardIterator> ForwardIterator next (ForwardIterator it, typename iterator_traits<ForwardIterator原创 2021-05-03 12:02:28 · 375 阅读 · 0 评论 -
STL容器使用时机
vector使用场景:比如软件历史操作记录的存储deque使用场景:排队购票系统 vector和deque的比较:1:vector.at()比deque.at()效率高,因为vector的开头是固定的,而deque开始位置不固定2:如果有大量元素释放操作的话,vector花的时间更少,3:deque支持头部的快速插入和快速移除,这是deque的优点list使用场景:公交车乘客的存储,随时可能有乘客下车,支持频繁的不确定位置元素的插入和删除set使用场..原创 2021-03-27 21:21:31 · 89 阅读 · 0 评论 -
C++ STL中的map容器
map/multimap容器的基本概念 1.map容器的基本概念 map的特性是,所有元素都会根据元素的键值自动排序,map所有的元素都是pair,同时拥有键值和实值,pair第一元素被视为键值,第二元素被视为实值,map不允许两个元素有相同的键值。 可以通过map的迭代器改变map的键值吗》答案是不行的,因为map的键值关系到map元素的排列规则,任意改变map原创 2021-03-27 20:47:30 · 86 阅读 · 0 评论 -
二叉树的层序遍历
二叉树的层序遍历二叉树的层序遍历跟前中后序遍历有点不一样,层序遍历是一层一层的遍历,用到的数据结构不是栈而是队列。vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*>que; vector<vector<int>>result; //定义的二维数组用来存放每一层遍历的结果 if(root!=NULL)que.push(原创 2021-02-21 08:11:57 · 146 阅读 · 1 评论 -
二叉树的遍历方式
二叉树的遍历方式前序遍历递归:递归函数最重要的三个部分:1 :递归函数的传参2:递归函数的出口 什么时候结束3:递归函数的内层逻辑是啥void pre(TreeNode *root,vector<int>&vec){ if(root==NULL)return ; // 递归函数的出口 如果此时节点指针为空 则返回 vec.push_back(root->val); // 把当前节点的值放进结果数组中 pre(r原创 2021-02-20 23:03:26 · 121 阅读 · 1 评论 -
动态规划LeetCode
动态规划题目总结近日做了一些LeetCode中的动态规划的题目,可以做个总结了!1:322.零钱兑换2:121.买卖股票最佳时机I3:122.买卖股票的最佳时机II4:面试题08.01三步问题5:70.爬楼梯6:746.使用最小路径爬楼梯7:343.整数拆分8:62.不同路径9:63.不同路径II322.零钱兑换该题显然是可以用动态规划去做的。不明白的可以看看这篇文章。里面列出了哪些情况是可以用动态规划去做。动态规划的做题步奏如下 1:*确定dp矩阵*,并明确dp[i]或者其他原创 2021-02-03 23:17:50 · 139 阅读 · 1 评论 -
动态规划拙见
动态规划刷题也有好几个月了,但一直都是沉醉于数组和字符串这些入门的知识点,这假期准备好好啃一些知名的算法了动态规划作为科技公司基本上必考的知识点,在刷题网站中占有很大的比重,很多的题目都可以用动态规划去做。今天就来捋一捋dynamic program。什么是动态规划先来个例题:问总共有多少种方法可以走到右下角? 如果想用动态规划解题,首先要先明确什么样类型的题目适合用动态规划去做,毕竟面试时 候,面试官不可能说:来用动态规划给我解这道题。动态规划题目特点 **1**:计数原创 2021-01-24 00:01:20 · 4443 阅读 · 5 评论 -
LeetCode 448 找到数组中消失的数字
LeetCode448题题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:[4,3,2,7,8,2,3,1]输出:[5,6]题解:...原创 2020-12-29 20:26:38 · 136 阅读 · 0 评论 -
剑指offer-斐波那契数列
刷题笔记 不知不觉中走到了研二,恍惚之间好像还记得研一入学的场景,提着拉杆箱去学院帐篷那里报到,不对 ,应该恍惚之间还记得本科时候入学场景,提着拉杆箱去学院帐篷那里报到。哎,那么多年过去了 ,感觉还是碌碌无为。 准备一下来年的春招吧,重拾一下数据结构和算法。准备刷题,LeetCode和剑指offer,这里就当是个笔记本吧!剑指offerJZ7添加链接描述给定一个正整数n,问第n个斐波那契数列是多少(第0个是0,第一个是1)?首先斐波那契数列的定义是f(n+1)=f(n)+f(n−1),生成第原创 2020-12-28 12:46:25 · 211 阅读 · 2 评论 -
二维数组的查找
剑指offer刷题笔记二维数组的查找JZ2题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。样例输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]输出:True题解思路:**直接暴力解法,数组问题好像没有什么是for循环解决不了的,如果有,那就再嵌套一个循环。**def fi原创 2020-12-28 16:53:58 · 312 阅读 · 0 评论