自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(277)
  • 资源 (17)
  • 收藏
  • 关注

原创 数据结构之坐标栈

数据结构之坐标栈栈的基本知识我们学习了栈的基本知识,我们规定栈是一种操作受限的线性表,栈规定数据只能从一个端口进行插入和删除操作(也叫入栈和出栈)我们平时所使用的栈中都是存储的单一元素,例如整形数据栈,浮点型数据栈等等,但在我们实际使用中,我们会遇到将一组数据存入栈的操作,如我们所讲的坐标栈,入栈元素为(2, 5),(3,7)这样的数据。这里就需要使用坐标栈坐标栈所需准备一个坐标类(Co...

2019-11-07 10:07:25 894 2

原创 你好,面试官-秋招面经C++持续更新

@ TOC指针和引用的区别指针是一个变量,存储的是内存中的一个地址,引用只是一个别名,和原来变量是同一个东西指针可以有多级,引用只能有一级,不存在多级引用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Cir9xkW-1633657708915)(C:\Users\Tabghu\AppData\Roaming\Typora\typora-user-images\image-20211008094237291.png)]指针在初始化是可以为空,在定义时可以不进行

2021-10-08 09:52:23 385

原创 【leetcode】647. 回文子串

647. 回文子串题目链接思路分析代码实现题目链接647. 回文子串思路分析中心扩展算法,把当前字符当成中心,向两端进行拓展,计算有多少字符串存在的问题就是我们的中心有可能有一个有可能有两个,因此中心拓展算法,要分别计算以当前字符为中心和以当前字符以及当前字符写一个字符作为中心将两种方法的结果加起来就是最终的结果代码实现class Solution {public: int countSubstrings(string s) { //双指针法

2021-08-18 16:05:43 282

原创 【leetcode】93. 复原 IP 地址

93. 复原 IP 地址题目链接思路分析代码实现题目链接93. 复原 IP 地址思路分析既然是复原IP地址,那么就必然需要一个判断是否符合IP的函数,其次我们对于一段处理好的子串,需要将其提取出来,以及在回溯的时候,我们要将这一段数据删除,这几个函数的边界处理问题时需要注意的,最后,如果在某一段发现数据不合格,就说明这样的切割方法是没有结果过的,直接跳出就可以代码实现class Solution {public: string path; vector<strin

2021-08-18 15:21:39 312

原创 【leetcode】131. 分割回文串

131. 分割回文串题目链接思路分析代码实现题目链接131. 分割回文串思路分析既然是要分割回文子串,那么就必须判断回文子串,所以需要一个判断回文子串的方法,其次我们要将处理好的回文子串保存起来。这道题目必然需要采用回溯法来进行处理,如果当前字串已经是回文串了,就保存起来,如果不是,继续向下寻找。终止条件就是当寻找的索引**index >= s.size() **的话,就说明已经超出了范围代码实现class Solution { vector<string>

2021-08-18 14:29:07 163

原创 【leetcode】1530. 好叶子节点对的数量

这里写目录标题题目链接思路分析代码实现题目链接1530. 好叶子节点对的数量思路分析对于好叶子节点,就是要求两个节点间的距离小于给定值,因此,我们需要存储节点的距离,那么当访问当根节点,说明此时节点距离为0此时返回0,当上一层看到叶子节点时,计算叶子节点距离本层节点距离为1,然后存储起来,对于右子树也是同样的计算方式,这样就可以得到父节点左右子树孩子的深度,然后在每一层对于大于distance的节点数量进行累加,然后在返回上一层,每一层都存储这每一叶子节点的深度。在一层进行判断最终就能得

2021-08-15 21:56:19 145

原创 【leetcode】200. 岛屿数量

这里写目录标题题目链接思路分析代码实现题目链接200. 岛屿数量思路分析题目中要求求解网格中岛屿中的数量,马么问题就在于如何判断是否是岛屿从题目中可以看出,只要是连通的陆地就被视为是一块岛屿,因此题目被转化为求解多少陆地连在一起,可以采用深度优先搜索,为了防止被重复遍历, 将我们搜素过的陆地都置为0代码实现class Solution {public: void check(vector<vector<char>>& grid, int i

2021-08-15 10:35:02 99

原创 [leetcode]378. 有序矩阵中第 K 小的元素

378. 有序矩阵中第 K 小的元素题目链接思路分析代码实现题目链接378. 有序矩阵中第 K 小的元素思路分析题目中又一次提到了有序,就能够猜想能够使用二分法那么如果要使用二分的话,我们就需要左右边界,我们寻找的是某一个元素,因此我们考虑使用数组的值域,在数组中,左上和右下分别是最小和最大值,我们可以通过求解中值的方法来不断缩小范围当我们得到一个中值之后,需要注意的就是如何计算比中值小的数字的数量从最后一行开始统计,若当前值小于mid,由于每一列也都是升序排列,所以这一列也都小于mi

2021-08-14 21:59:00 116

原创 【剑指offer】剑指 Offer 48. 最长不含重复字符的子字符串

剑指 Offer 48. 最长不含重复字符的子字符串题目链接思路分析代码实现题目链接剑指 Offer 48. 最长不含重复字符的子字符串思路分析最长不含重复子字符串,要明确是如何判断是否重复,我们就可以采用set进行去重我们确定了使用set来进行去重,我们就需要来考虑如何选择子字符串,对于字符串选择,我们采用双指针来进行区间选择最后我们要选择如何对于处理出现重复的情况,当出现重复时,我们就计算当前区间长度,并将左指针++,然后继续进行判断代码实现set + 双指针class

2021-08-14 14:56:12 128

原创 【剑指offer】STLstring类的实现/C++STL/string/模拟实现

直接给出代码实现,所有需要注意的的点都在代码注释中给出//string类模拟实现class MyString{public: //构造函数 //这里传递参数为char*字符串,因为如果传string的话,构造函数还没有实行,无法传递 MyString(const char* str) { //要进行判断是否为空 if (str == nullptr) { _data = new char[1]; *_data = '\0'; } int len = st.

2021-08-13 10:01:41 126

原创 【剑指offer】剑指 Offer 67. 把字符串转换成整数

剑指 Offer 67. 把字符串转换成整数题目链接思路分析代码实现题目链接剑指 Offer 67. 把字符串转换成整数思路分析将字符串转成整数,我们首先要判断一个什么样的字符串算整数行首不能有空格开头必须是数字, +, -,不能有其他符号数字必须是连续的,在遇到数字后,再遇到不是数字的就可以停止例如 123word123代码实现注意代码中的注释,要注意判断边界和特殊情况class Solution {public: int strToInt(string str) {

2021-08-12 16:21:56 87

原创 【剑指offer】剑指 Offer 07. 重建二叉树

剑指 Offer 07. 重建二叉树题目链接思路分析代码实现题目链接剑指 Offer 07. 重建二叉树思路分析众所周知,我们知道一个二叉树的前序遍历和中序遍历 或者中序遍历和后序遍历,我们就可以通过这两组数对二叉树进行复现首先,要明确,我们先序遍历数组的第一个数就是我们根节点我们根据根节点找到终须数组的分界点,将中序数组分为左右字数两部分我们此时要对前序数组进行切分,我们对前序数组切分的大小就是我们中序遍历切分的两个数组的大小因为我们要满足中序子数组和前序子数组大小是相同的,这样才

2021-08-12 15:39:47 80

原创 【剑指offer】剑指 Offer 11. 旋转数组的最小数字

剑指 Offer 11. 旋转数组的最小数字题目链接思路分析代码实现题目链接剑指 Offer 11. 旋转数组的最小数字思路分析题目中提到了递增排序 *数组,我们的DNA已经动了,就要考虑二分法进行解决既然要使用二分法,我们该怎么分,先找到左端点L,右端点R 中间节点Mif(a[m] > a[r]) 对于数组已经发生了旋转,并且小的那部分在后边,因此L = M+1if(a[m] < a[r])  说明数组在该位置应该是递增的,所以最小值就在这一部分,但是此时a[m]也有可能是最小值,所

2021-08-12 13:58:07 92

原创 【剑指offer】剑指 Offer 59 - I. 滑动窗口的最大值

剑指 Offer 59 - I. 滑动窗口的最大值题目链接思路分析代码实现题目链接剑指 Offer 59 - I. 滑动窗口的最大值思路分析读者在阅读这道题目之前可以先阅读队列的最大值滑动窗口 最大值, 我们可以联想前面的队列最大值的题目两者思路较为相似,都是求一个滑动窗口中的最大值,我们就需要一个最大值队列,来存储窗口中的最大值当窗口开始滑动时,就相当于我们将元素添加到队列中,然后删除划走的元素,每次取队列的最大值代码实现class Solution {public:

2021-08-11 17:30:48 103

原创 【剑指offer】剑指 Offer 53 - II. 0~n-1中缺失的数字

剑指 Offer 53 - II. 0~n-1中缺失的数字题目链接思路分析代码实现题目链接剑指 Offer 53 - II. 0~n-1中缺失的数字思路分析题目中提到了递增排序就意味着我们可能能够使用二分法来进行求解如果是用二分法,题目中没有给出target,但是数的范围和数组的大小是有关系的我们可以依据下标和数值来进行判断,对于一个数,他只有两种方案- 1. nums[i] == i 如果相同,说明缺失的数字还在数组的后面,因此让左指针++- 2. nums[i] != i 如果不

2021-08-11 16:05:11 109

原创 【剑指offer】剑指 Offer 58 - I. 翻转单词顺序

剑指 Offer 58 - I. 翻转单词顺序题目链接思路分析代码实现题目链接剑指 Offer 58 - I. 翻转单词顺序思路分析题目要求首先要去掉头尾空格如果在我们去除头尾空格之后,要对当前的字符串进行判断,排除掉全为空格的情况在去掉头尾空格之后,我们使用一个**vector< string>**来存储我们处理好的字符串,然后我们开始遍历字符串,去掉中间多余的空格,当遇到空格时,我们就将前面的字符串存储起来,最终进行反转,就能得到结果代码实现class Solut

2021-08-11 15:28:32 102

原创 【剑指offer】剑指 Offer 59 - II. 队列的最大值

剑指 Offer 59 - II. 队列的最大值题目链接思路分析代码实现题目链接剑指 Offer 59 - II. 队列的最大值思路分析首先需要明确的是,我们的max_value是用来得到队列中的最大值的,所以我们max_value返回的一定是队头元素,那么如果我们新入队的数变为当前队列的最大值的话,我么就要更新最大值队列例如 入队顺序为2 3 5,那么当5入队后,其前面的2 3就没有意义了,因此需要将他们出队想要将他们出队,就一定要从尾部开始判断,因此我们需要尾删,所以也决定了我们要使用d

2021-08-11 14:47:36 131

原创 【单例模式】单例模式C/C++实现/懒汉式/饿汉式

单例模式思路分析饿汉式代码实现懒汉式思路分析在书写单例模式之前,我们需要先理解为什么需要单例模式保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决: 一个全局使用的类频繁地创建与销毁。何时使用: 当您想控制实例数目,节省系统资源的时候。单例模式的优点有哪些1、单例模式节省公共资源比如:大家都要喝水,但是没必要每人家里都打一口井是吧,通常的做法是整个村里打一个井就够了,大家都从

2021-08-10 21:25:19 342

原创 【剑指offer】剑指 Offer 61. 扑克牌中的顺子

剑指 Offer 61. 扑克牌中的顺子题目链接思路分析代码实现题目链接剑指 Offer 61. 扑克牌中的顺子思路分析先对满足顺子的情况进行分析,我们先排除大小王,其他的数字能满足顺子,要求:数组中没有相同的数由于只有5个数,那么最大数减最小数间隔小于5,才能是顺子,为什么不是==4?是为了排除0 0 1 2 3的情况尽管间隔为2 但是依然能满足顺子的情况综上可述,我们先要对数组进行排序,然后统计第一位不为0的数字,并计算他们差值代码实现class Solution {

2021-08-10 15:30:45 100

原创 【剑指offer】剑指 Offer 29. 顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵题目链接思路分析代码实现题目链接剑指 Offer 29. 顺时针打印矩阵思路分析手动模拟顺时针打印代码实现class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int m = matrix.size(); if(m == 0) return {}

2021-08-09 16:20:53 79

原创 【剑指offer】剑指 Offer 51. 数组中的逆序对

剑指 Offer 51. 数组中的逆序对题目链接思路分析代码实现题目链接剑指 Offer 51. 数组中的逆序对思路分析第一种方法是进行穷举暴力解法,但这肯定会超时因此我们可以不断划分区间,使用归并排序的思想,求解每一个小区间的逆序对,然后将它们加在一起,就能得到最终的结果,也就是总的逆序对数。[1,3,6,9] [2, 5, 8]对于3 5来说 3 < 5 但是3 大于 5之前的所有数,例如2再对于6来说,尽管6 < 8 但是6 大于8之前的所有数我们将这些数加起来,

2021-08-09 15:58:00 94

原创 【剑指offer】剑指 Offer 46. 把数字翻译成字符串

剑指 Offer 46. 把数字翻译成字符串题目链接思路分析代码实现题目链接剑指 Offer 46. 把数字翻译成字符串思路分析使用递归一个数如果是在[10, 25]之间的话,那么就有两种分割方法,分成 2 - 5 和 25如果该数大于25或者小于9的话,就只能切割一次例如37 分成3 - 7因此我们进行判断,如果在[10, 25]之间,就分割两次,超过该范围就分割一次,进入下一次分割2.动态规划认为dp[i]就代表前i个数能够分割的次数dp[0] =1 dp[1] =1

2021-08-09 14:38:58 57

原创 【剑指offer】剑指 Offer 33. 二叉搜索树的后序遍历序列

剑指 Offer 33. 二叉搜索树的后序遍历序列题目链接思路分析代码实现题目链接剑指 Offer 33. 二叉搜索树的后序遍历序列思路分析对于二叉搜索树来讲,它的最大特性就是如果左右孩子存在,那么右孩子一定大于左孩子,并且按照后序遍历的规则,数组的最后一个节点就是二叉树的根节点如果能确定根节点,我们又知道左右子树的分割点,我们就能将完整的树分为左右子树,如果是一颗搜索树,那么可以得到的是右子树的每一个节点的值都大于根节点,就可以依据这个来判断是否是二叉搜索树接着按照这种方法,对左右子树继续

2021-08-09 12:44:56 75

原创 【剑指offer】剑指 Offer 60. n个骰子的点数

剑指 Offer 60. n个骰子的点数题目链接思路分析代码实现题目链接剑指 Offer 60. n个骰子的点数思路分析这道题目采用动态规划的思想dp[i][j]为我们i个骰子丢出点数为j的次数首先我们对于n个骰子, 出现点数的最小值就是n,最大值就是6*n先通过一个简单的例子来辅助进行理解,假设此时有3个骰子,丢出点数为8的次数 即dp[3][8]由于我们直接计算3个骰子结果出现的次数会比较困难,我们通过借助2个骰子来进行计算,如果我们已经知道2个骰子的点数假设为5,那么为了得到8我们

2021-08-09 10:41:38 81

原创 【剑指offer】剑指 Offer 30. 包含min函数的栈

剑指 Offer 30. 包含min函数的栈题目链接思路分析代码实现题目链接剑指 Offer 30. 包含min函数的栈思路分析题目中明确要求push, pop, min的时间复杂度是O(1),如果我们仅使用一个栈的话,在求解min 的时候无法满足该要求,因此需要使用另一个辅助栈来帮助我们进行求解因此我们需要两个栈,一个用来正常存储数据,另一个min_st用来存储最小值,当入栈数据x<=min_st.top时,将x添加到min_st中,在出栈的时候,检查栈顶元素x是否和min_st栈顶元素

2021-08-09 09:04:08 77

原创 【剑指offer】剑指 Offer 45. 把数组排成最小的数

剑指 Offer 45. 把数组排成最小的数题目链接思路分析代码实现题目链接剑指 Offer 45. 把数组排成最小的数思路分析这道题目的本质上就是数组进行排序,先从示例1开始观察 “10” + “2” = “102”, “2”+ “10” == “210”因此我们认为10 < 2 在排序结束后2 需要出现在10 的右侧若拼接字符串 x + y > y + x,则x > y反之,若 x + y < y + x,则 x < y;代码实现class Solu

2021-08-02 15:55:37 130

原创 【剑指offer】剑指 Offer 14- I. 剪绳子

剑指 Offer 14- I. 剪绳子题目链接思路分析代码实现题目链接剑指 Offer 14- I. 剪绳子思路分析这道题目是动态规划的典型题目先定义一个dp数组,dp[n]代表第n个数被调整后得到的最大值对于dp[i]来说, 有两个方面能够得到2.1 我们可以由 j* (i - j)求解 以数字6为例 可以是2 * 4, 3 * 3,不考虑1,因为将数字分解为1没有意义2.2 也可以通过i * dp[i - j] 例如 2 * dp[4], 3*dp[3]对于结果我们当然是去取他们中

2021-08-02 15:34:20 54

原创 【剑指offer】剑指 Offer 34. 二叉树中和为某一值的路径

剑指 Offer 34. 二叉树中和为某一值的路径题目链接思路分析代码实现题目链接剑指 Offer 34. 二叉树中和为某一值的路径思路分析首先是要找到一条路径,那么如何判断是一条路径了,就是当前节点的左右孩子都为空,及说明该节点就是这条路径上的最后一个节点,其次,题目还要求该路径上的值满足一个值,所以我们需要维护一个变量sum用来保存当前路径上的和。if(root->left == nullptr && root->right == nullptr &&am

2021-08-01 16:21:28 100

原创 【剑指offer】剑指 Offer 38. 字符串的排列

剑指 Offer 38. 字符串的排列题目链接思路分析代码实现题目链接剑指 Offer 38. 字符串的排列思路分析题目要求输出字符串的全排列,要求不能有重复的出现,因此需要考虑去重逻辑,为了更好的去重,我们需要将字符串及进行排序,并设置一个used数组作为辅助数组,再次观察题目要求,要求结果中不能有重复,因此我们只需要保证每一层所取的元素不一样就可以,对于当前层元素,如果当前元素与前一个元素相同,说明有坑你出现重复,并且如果前一个的used为false 就说明前一个已经使用过了,此时就不能使用该

2021-08-01 15:54:59 73

原创 【剑指offer】剑指 Offer 28. 对称的二叉树

剑指 Offer 28. 对称的二叉树题目链接思路分析代码实现题目链接剑指 Offer 28. 对称的二叉树思路分析既然是判断二叉树是否对称,我们就需要寻找二叉树对称的条件首先,如果这棵树是一颗空树,那么就一定是对称二叉树如果根节点不为空,我们就需要判断其左右子树,如果左右子树都为空,则是对称二叉树如果左右子树不为空,我们就需要比较左右子树的数值是否相等,如果相等,说明本层满足,继续向下寻找,如果不等,返回false,在比较的时候我们要注意,我们比较的是例1中的2的左孩子3 和 同层的2

2021-08-01 14:46:19 79

原创 【剑指offer】剑指 Offer 65. 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法题目链接思路分析代码实现题目链接剑指 Offer 65. 不用加减乘除做加法思路分析既然题目禁止使用加减乘除四则运算,那么我们只能考虑使用位运算来进行求解,刚开始如果没有思路,我们可以随便取一些数来找找规律观察这三组数,可以看到前两组相加都是两个数进行异或的结果,而对于第三组数,经过异或得到0111我们发现,当存在某一位上两个数都为1时,存在进位操作,所以正确的操作应该是,先计算不进位的情况,然后计算进位的结果,当进位结果不为0时,就将两者相加,重

2021-08-01 14:22:47 83

原创 【剑指offer】剑指 Offer 40. 最小的k个数

剑指 Offer 40. 最小的k个数题目链接思路分析代码实现题目链接剑指 Offer 40. 最小的k个数思路分析1使用优先级队列我们直接使用优先级队列来进行处理C++中,使用优先级队列需要包含头文件,优先级队列的定义如下:priority_queue<typename, container, functional>typename是数据的类型;container是容器类型,可以是vector,queue等用数组实现的容器,不能是list,默认可以用vector;

2021-07-31 21:23:23 137

原创 【剑指offer】剑指 Offer 55 - II. 平衡二叉树

剑指 Offer 55 - II. 平衡二叉树题目链接思路分析代码实现题目链接剑指 Offer 55 - II. 平衡二叉树思路分析在判断平衡二叉树之前,要首先搞清楚什么是平衡二叉树AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子

2021-07-30 18:45:49 67

原创 【剑指offer】面试题3. 数组中重复的数字

面试题3. 数组中重复的数字题目链接思路分析代码实现题目链接面试题3. 数组中重复的数字思路分析1 使用unordered_set直接使用set对数据进行去重,每准备插入一个数据,就在set中寻找该数据,若已经遇到过,说明已经出现了重复,直接返回,若未查找到,说明是新值,将其插入set2 进行原地置换题目中给出的额外信息有一个长度为n的数组,里面的数字范围都在0~n-1之间,意味着我们可以从这里出发,假如我们能够将每一个数字都放回到他的索引位置,例如2放到下标为2的位置,这样当我们以后再遇

2021-07-30 17:48:08 61

原创 二叉树遍历非递归C++

二叉树遍历非递归C++题目链接二叉树的前序遍历思路分析代码实现二叉树的中序遍历思路分析代码实现二叉树的后序遍历思路分析代码实现一点点题外话题目链接二叉树的前序遍历144. 二叉树的前序遍历思路分析既然要使用非递归的方式,那就必须要借助栈来进行处理,前序遍历的遍历顺序为中左右,因此我们从根节点开始遍历,将遇到的每一个节点入栈,并保存遇到的每一个节点,我们不断的去访问左子树,当访问到最后一个节点时,此时就该访问右子树,当栈不为空或当前节点不为空时,就继续进入循环代码实现/** * Defini

2021-07-29 17:37:26 663

原创 八大排序之堆排序C++详解/C++堆排序/堆排

八大排序之堆排序C++详解/C++堆排序/堆排题目链接思路分析代码实现题目链接912. 排序数组思路分析代码实现class Solution {public: void Swap(int& a, int& b) { int tmp = a; a = b; b = tmp; } void adjustDown(vector<int>& nums, int root, int n)

2021-07-29 14:33:20 135

原创 【剑指offer】剑指 Offer 32 - III. 从上到下打印二叉树 III

剑指 Offer 32 - III. 从上到下打印二叉树 III题目链接思路分析代码实现题目链接剑指 Offer 32 - III. 从上到下打印二叉树 III思路分析代码实现/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), lef

2021-07-27 20:50:08 79

原创 【剑指offer】剑指 Offer 18. 删除链表的节点

剑指 Offer 18. 删除链表的节点题目链接思路分析代码实现题目链接剑指 Offer 18. 删除链表的节点思路分析既然要对链表中的节点进行删除,那么保存前一个节点是十分重要的,然后考虑下极端情况,如果删除的是第一个节点,他没有前一个节点,因此还需要一个虚拟头节点。代码实现/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * L

2021-07-27 17:15:55 58

原创 【剑指offer】剑指 Offer 66. 构建乘积数组

剑指 Offer 66. 构建乘积数组题目链接思路分析代码实现题目链接剑指 Offer 66. 构建乘积数组思路分析一种通俗的解法来说就是可以使用双层暴力循环进行求解,但是这样计算会导致过高的时间复杂度。我们先计算位于i左侧的数据的乘积, 例如对于3来说,3左边就等于12 = 2 5左边就等于1234 = 24自上而下,然后计算i右侧的乘积 3的右侧就是5*4 = 20 所以返回值中4 所对应的乘积就等于左边乘右边2 * 20 = 40自下而上代码实现class Solution

2021-07-27 16:03:21 76

原创 【剑指offer】剑指 Offer 31. 栈的压入、弹出序列

剑指 Offer 31. 栈的压入、弹出序列题目链接思路分析代码实现题目链接剑指 Offer 31. 栈的压入、弹出序列思路分析这道题目是考察模拟栈的出栈序列,题目给出了一个压栈序列和一个出栈序列,那么可以知道,只有当出栈序列的元素等于栈顶元素时,才能够进行出栈代码实现class Solution {public: bool validateStackSequences(vector<int>& pushed, vector<int>& pop

2021-07-27 15:16:30 50

VS主题/程序员用VS主题

VS主题/程序员用VS主题/VS主题/程序员用VS主题/VS主题/程序员用VS主题/VS主题/程序员用VS主题/VS主题/程序员用VS主题/VS主题/程序员用VS主题/

2021-05-29

自来水管道铺设问题建模与计算/最优化问题

自来水管道铺设问题建模与计算/最优化问题/自来水管道铺设问题建模与计算/最优化问题/自来水管道铺设问题建模与计算/最优化问题/自来水管道铺设问题建模与计算/最优化问题/

2021-05-29

C语言配套练习题/C++练习题/C++课后题答案

C语言配套练习题/C++练习题/C++课后题答案C语言配套练习题/C++练习题/C++课后题答案C语言配套练习题/C++练习题/C++课后题答案

2021-05-29

职工管理系统.zip

职工管理系统.zip

2020-08-11

C++类模板案例.zip

C++类模板案例.zip

2020-08-11

C语言入门语法训练-C题库.rar

C语言入门语法训练-C题库.rar

2020-07-01

数据结构之队列.rar

数据结构之队列数据结构之队列数据结构之队列数据结构之队列数据结构之队列数据结构之队列数据结构之队列数据结构之队列数据结构之队列

2020-04-07

数据结构之顺序表.rar

数据结构之顺序表

2020-04-07

数据结构之图.rar

深度优先遍历

2020-04-07

数据结构之线性表.rar

使用数组完成线性表的编写 有增删修改查找的操作使用数组完成线性表的编写

2020-04-07

圆周率对称加密算法.rar

基于圆周率加密矩阵实现对称加密算法 可以有效抵抗选择明文攻击 大大提高安全程度 实现了加密步骤 基本每一步都有注释

2020-04-05

学生成绩管理系统C++.rar

cout << "-------------1: 添加学生信息-----------------" << endl; cout << "-------------2: 删除学生信息-----------------" << endl; cout << "-------------3: 修改学生信息-----------------" << endl; cout << "-------------4: 查找学生信息-----------------" << endl; cout << "-------------5: 显示学生信息-----------------" << endl; cout << "============================================" << endl;

2019-12-29

数据结构之二叉树链表.rar

基于vs环境下实现了数据结构之二叉树链表形式,将原有的利用数组存储二叉树进行了改进,能够利用指针进行修改。可以进行插入和删除节点操作,以及对二叉树进行前中后序遍历。

2019-12-11

数据结构之二叉树.rar

利用数组实现对二叉树的操作,例如,插入删除,遍历操作。用C++实现,具有面向对象的思想,代码简单易懂。

2019-12-05

数据结构之坐标栈.rar

采用面向对象的方式实现一个坐标栈,栈中存储的是坐标对象,为了输入输出更加方便,使用了运算符重载,能够实现出入栈操作,以及判空判满。

2019-11-07

数独解法.rar

使用随机数对数独进行破译,通过查找空位然后对空位赋随机值来实现对数独填空的功能,最后利用循环来对已填好的数独进行检查,查看其是否满足数独要求

2019-11-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除