C++
ZhInen丶
西安电子科技大学2020级计算机硕士研究生
展开
-
理解线程池工作原理并(C语言)实现
理解线程池工作原理并(C语言)实现原创 2022-10-03 16:01:44 · 938 阅读 · 0 评论 -
lambda表达式
lambda表达式(匿名函数),实际上就是提供了一个类似匿名函数的特性,而匿名函数则是在需要一个函数,但是又不想去命名一个函数下去使用的。原创 2022-09-26 09:57:00 · 164 阅读 · 0 评论 -
详细易懂--C++中的STL
目录标题1. STL的背景2. STL基本概念3. STL中的组件4. STL中容器、算法、迭代器1. STL的背景C++面向对象和泛型编程思想,目的就是复用性的提升。为了建立数据结构和算法的一套流程,诞生了STL2. STL基本概念STL(Standard Template Library,标准模板库),可以从广义上分为:容器、算法和迭代器。容器和算法通过迭代器无缝连接,STL几乎所有的代码都采用了模板类或者模板函数。3. STL中的组件分别为:1)容器:各种数据结构,如:vector、li原创 2022-05-17 19:45:14 · 451 阅读 · 0 评论 -
C++实现数独游戏
问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个3X3粗线宫内的数字均含1-9,并且不重复。例如:输入输出:数据范围:输入一个 9*9 的矩阵输入描述:包含已知数字的9X9盘面数组[空缺位以数字0表示]输出描述:完整的9X9盘面数组示例1输入:0 9 2 4 8 1 7 6 34 1 3 7 6 2 9 8 58 6 7 3 5 9 4 1 26 2 4 1 9 5 3原创 2022-05-12 20:55:35 · 4095 阅读 · 0 评论 -
C++模板
目录标题1.模板的概念2.函数模板2.1 函数模板语法2.2 函数模板的注意事项2.31.模板的概念模板就是建立通用的摸具,大大提高复用性。其特点:1)模板不可以直接使用,它只是一个框架。2)模板的通用并不是万能的2.函数模板C++另一种编程思想称为泛型编程,主要利用的技术就是模板。C++提供两种给模板机制:函数模板和类模板2.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:templatetemplate:声明创原创 2022-05-10 21:33:19 · 211 阅读 · 0 评论 -
C++文件操作
目录1.文本文件1.1 写文件1.2 读文件2.二进制文件2.1 写文件2.2 读文件程序运行时,产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化,C++对文件操作需要包含头文件<fstream><fstream><fstream>。文本类型分为两种:1)文本文件:文件以文本的ASCII码的形式存储在计算机中2)二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们。操作文件三大类:1)ofstream:写2)原创 2022-04-29 15:56:30 · 2934 阅读 · 0 评论 -
内存分区模型
目录1.程序运行前1.1 代码区1.2 全局区1.3 总结2. 程序运行后2.1 栈区2.2 堆区3. new操作符C++程序在执行时,将内存主要划分为四个区域:1)代码区:存放函数体的二进制代码,有操作系统进行管理的。2)全局区:存放全局变量和静态变量以及常量。可分为BSS 段:存放程序中未初始化的全局变量和静态变量的一块内存区域和数据段:存放程序中已初始化的全局变量和静态变量的一块内存区域。3)栈区:存储局部变量、函数参数值。栈从高地址向低地址增长。是一块连续的空间,由编译器自动分配释放。4)原创 2022-04-27 15:08:09 · 358 阅读 · 0 评论 -
C++中的类和对象
C++面向对象的三大特性为:封装、继承、多态。C++认为万事万物都皆为对象,对象上有其属性和行为。如人可以作为对象,属性有姓名、年龄、身高、体重等,行为有吃、喝、走、跑等。1.封装1.1 封装的意义封装是C++面向对象的三大特性之一。其意义为:1)将属性和行为作为一个整体:在设计类的时候,属性和行为写在一起,表现事务语法class 类名{ 访问权限 : 属性 / 行为 };#include<iostream>using namespace std;const double PI =原创 2022-04-27 12:59:06 · 1463 阅读 · 0 评论 -
内部排序--数据结构
一、基本概念排序:将一个数据元素的任意序列重新排列成一个按关键词有序的序列。稳定的排序:相等的数据元素在排序后相对的位置不变。内部排序的分类:插入排序:将无序子序列中的一个或几个记录插入到有序序列中,从而增加记录的有序子序列的长度。如直插排序、二分插入排序、希尔排序交换排序:通过交换无序序列中的记录从而得到关键词最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度。如冒泡排序、快速排序。选择排序:从记录的无序子序列中选择关键字最小或最大的记录,并将它加入到有序子序列中,原创 2022-03-27 15:29:30 · 1255 阅读 · 0 评论 -
BM3 链表中的节点每k个一组翻转
描述将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表。如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样。你不能更改节点中的值,只能更改节点本身。数据范围: 0≤n≤2000 , 1≤k≤2000 ,链表中每个元素都满足 0≤val≤1000要求空间复杂度 O(1),时间复杂度 O(n)例如:给定的链表是1→2→3→4→5对于 k = 2 , 你应该返回2→1→4→3→5对于 k = 3 , 你应该返回3→2→1→4→5示例1输入:{1,2,3,4,5},2返回值:{2原创 2022-03-25 19:27:00 · 119 阅读 · 0 评论 -
NC2 重排链
描述将给定的单链表 L:L0→L1→…→Ln−1→Ln\ L : L_0→L_1→…→L_{n-1}→L_ n L:L0→L1→…→Ln−1→Ln重新排序为:L0→Ln→L1→Ln−1→L2→Ln−2→…L_0→L_n →L_1→L_{n-1}→L_2→L_{n-2}→…L0→Ln→L1→Ln−1→L2→Ln−2→…要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。数据范围:链表长度0≤n≤20000 ,链表中每个节点的值满足0≤val≤10原创 2022-03-22 21:48:59 · 416 阅读 · 0 评论 -
BM95 分糖果问题
描述一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:每个孩子不管得分多少,起码分到一个糖果。任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。(若相同则无此限制)给定一个数组 arrarr 代表得分数组,请返回最少需要多少糖果。要求: 时间复杂度为 O(n)空间复杂度为 O(n)数据范围:1≤n≤100000 ,1≤ai≤10001 \le a_i \le 10001≤ai≤1000示例1输入:[1,1,2]返回值:4说明:最优分配方案为1,1,2示例2输入:[1原创 2022-03-20 16:21:12 · 5312 阅读 · 0 评论 -
BM93 盛水最多的容器
描述给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水1.你不能倾斜容器2.当n小于2时,视为不能形成容器,请返回03.数据保证能容纳最多的水不会超过整形范围,即不会超过231-1数据范围:0<=height.length<=1050<=height.length<=10^50<=height.length<=105,0<=height[i]<原创 2022-03-20 15:58:02 · 329 阅读 · 0 评论 -
BM85 验证IP地址
描述编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1;同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6 地址由8组16进制的数字来表示,每组表示 16 比特。这些组数字通过 (":")分割。比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是一个有原创 2022-03-17 16:29:38 · 157 阅读 · 0 评论 -
BM83 字符串变形
描述对于一个长度为 n 字符串,我们需要对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。数据范围: 1≤n≤1061\le n \le 10^61≤n≤106 , 字符串中包括大写英文字母、小写英文字母、空格。进阶:空间复杂度 O(n) , 时间复杂度 O(n)输入描述:给定一个字符串s以及它的长度n(1 ≤原创 2022-03-17 15:42:13 · 438 阅读 · 0 评论 -
BM82 买卖股票的最好时机(三)
描述假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益你最多可以对该股票有两笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票如果不能获取收益,请返回0假设买入卖出均无手续费数据范围:1≤n≤1051 \le n \le 10^51≤n≤105 ,股票的价格满足 1≤val≤1041 \le val\le 10^41≤val≤104要求: 空间复杂度 O(n),时间复杂度 O(n)原创 2022-03-17 15:17:09 · 301 阅读 · 0 评论 -
BM81 买卖股票的最好时机(二)
描述假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益你可以多次买卖该只股票,但是再次购买前必须卖出之前的股票如果不能获取收益,请返回0假设买入卖出均无手续费数据范围: 1≤n≤1×1051 \le n \le 1 \times 10^51≤n≤1×105 ,1≤prices[i]≤1041 \le prices[i] \le 10^41≤prices[i]≤104要求:空间复杂度 O(n),时间复杂度原创 2022-03-16 21:55:10 · 274 阅读 · 0 评论 -
BM80 买卖股票的最好时机(一)
描述假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费数据范围: 0≤n≤1050 \le n \le 10^50≤n≤105 ,0≤val≤1040 \le val \le 10^40≤val≤104要求:空间复杂度 O(1),时间原创 2022-03-16 20:56:39 · 67 阅读 · 0 评论 -
BM79 打家劫舍(二)
描述你是一个经验丰富的小偷,准备偷沿湖的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家,如果偷了第二家,那么就不能偷第一家和第三家。沿湖的房间组成一个闭合的圆形,即第一个房间和最后一个房间视为相邻。给定一个长度为n的整数数组nums,数组中的元素表示每个房间存有的现金数额,请你计算在不被发现的前提下最多的偷窃金额。数据范围:数组长度满足 1≤n≤2×1051 \le n \le 2\times10^51≤n≤2×105 ,数组中每个值满足1原创 2022-03-16 20:47:27 · 315 阅读 · 0 评论 -
BM78 打家劫舍(一)
描述你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家;如果偷了第二家,那么就不能偷第一家和第三家。给定一个整数数组nums,数组中的元素表示每个房间存有的现金数额,请你计算在不被发现的前提下最多的偷窃金额。数据范围:数组长度满足 1≤n≤2×1051 \le n \le 2\times 10^51≤n≤2×105 ,数组中每个值满足 1≤num[i]≤50001 \le num[i] \le 50001≤原创 2022-03-16 20:31:29 · 87 阅读 · 0 评论 -
BM75 编辑距离(一)
描述给定两个字符串 str1 和 str2 ,请你算出将 str1 转为 str2 的最少操作数。你可以对字符串进行3种操作:1.插入一个字符2.删除一个字符3.修改一个字符。字符串长度满足1≤n≤1000 ,保证字符串中只出现小写英文字母。示例1输入:“nowcoder”,“new”返回值:6说明:“nowcoder”=>“newcoder”(将’o’替换为’e’),修改操作1次。“nowcoder”=>“new”(删除"coder"),删除操作5次示例2输入:“in原创 2022-03-16 17:56:29 · 761 阅读 · 0 评论 -
BM71 最长上升子序列(一)
描述给定一个长度为 n 的数组 arr,求它的最长严格上升子序列的长度。所谓子序列,指一个数组删掉一些数(也可以不删)之后,形成的新数组。例如 [1,5,3,7,3] 数组,其子序列有:[1,3,3]、[7] 等。但 [1,6]、[1,3,5] 则不是它的子序列。我们定义一个序列是 严格上升 的,当且仅当该序列不存在两个下标 ii 和 jj 满足 i<ji<j 且 arri≥arrjarr_i \geq arr_jarri≥arrj数据范围: 0≤n≤1000要求:时间复杂度 O(n2原创 2022-03-15 21:02:32 · 384 阅读 · 0 评论 -
BM69 把数字翻译成字符串
描述有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。现在给一串数字,返回有多少种可能的译码结果数据范围:字符串长度满足 0<n≤90进阶:空间复杂度 O(n),时间复杂度 O(n)示例1输入:“12”返回值:2说明:2种可能的译码结果(”ab” 或”l”)示例2输入:“31717126241541717”返回值:192说明:192种可能的译码结果代码class Solution {public: /**原创 2022-03-15 18:51:50 · 122 阅读 · 0 评论 -
BM68 矩阵的最小路径和
描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。数据范围:1≤n,m≤500,矩阵中任意值都满足 0≤ai,j≤1000 \le a_{i,j} \le 1000≤ai,j≤100要求:时间复杂度 O(nm)例如:当输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]时,对应的返回值为12,所选择的最小累加和路径如下图所示:示例1输入:[[1,原创 2022-03-15 14:02:44 · 219 阅读 · 0 评论 -
BM67 不同路径的数目(一)
描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内数据范围:0<n,m≤100,保证计算结果在32位整型范围内要求:空间复杂度 O(nm),时间复杂度 O(nm)进阶:空间复杂度 O(1),时间复杂度 O(min(n,m))示例1输入:2,1返回值:1示例2输入:2,2返回值:2代码class Solution {原创 2022-03-14 21:40:37 · 325 阅读 · 0 评论 -
BM66 最长公共子串
描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。数据范围:1≤∣str1∣,∣str2∣≤50001 \le |str1|,|str2| \le 50001≤∣str1∣,∣str2∣≤5000要求: 空间复杂度 O(n2)O(n^2)O(n2),时间复杂度 O(n2)O(n^2)O(n2)示例1输入:“1AB2345CD”,“12345EF”返回值:“2345”备注:1≤∣str1∣,∣str2∣≤5 0001 \leq原创 2022-03-14 20:58:50 · 347 阅读 · 0 评论 -
BM64 最小花费爬楼梯
描述给定一个整数数组 cost \cost ,其中 cost[i]\cost[i] 是从楼梯第i \i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。数据范围:数组长度满足 1≤n≤1051 \le n \le 10^51≤n≤105 ,数组中的值满足 1≤costi≤1041 \le cost_i \le 10^41≤costi≤104示例1输入:[原创 2022-03-12 19:04:38 · 213 阅读 · 0 评论 -
BM61 矩阵最长递增路径
描述给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。这个路径必须满足以下条件:对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外。你不能走重复的单元格。即每个格子最多只能走一次。数据范围:1≤n,m≤1000,0≤matrix[i][j]≤10000 \le matrix[i][j] \le 10000≤matrix[i][j]≤1000进阶原创 2022-03-12 18:36:16 · 394 阅读 · 0 评论 -
BM59 N皇后问题
描述N 皇后问题是指在 n * n 的棋盘上要摆 n 个皇后,要求:任何两个皇后不同行,不同列也不在同一条斜线上,求给一个整数 n ,返回 n 皇后的摆法数。数据范围: 1≤n≤9要求:空间复杂度 O(1) ,时间复杂度O(n!)例如当输入4时,对应的返回值为2,对应的两种四皇后摆位如下图所示:示例1输入:1返回值:1示例2输入:8返回值:92代码class Solution {public: /** * * @param n int整型 the原创 2022-03-12 16:11:55 · 281 阅读 · 0 评论 -
BM57 岛屿数量
描述给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。例如:输入[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]对应的输出为3(注:存储的01数据其实是字符’0’,‘1’)示例1输入:[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],原创 2022-03-11 21:40:06 · 149 阅读 · 0 评论 -
BM56 有重复项数字的全排列
描述给出一组可能包含重复项的数字,返回该组数字的所有排列。结果以字典序升序排列。数据范围:0<n≤8 ,数组中的值满足 −1≤val≤5要求:空间复杂度 O(n!),时间复杂度 O(n!)示例1输入:[1,1,2]返回值:[[1,1,2],[1,2,1],[2,1,1]]示例2输入:[0,1]返回值:[[0,1],[1,0]]代码class Solution {public: vector<vector<int> > permuteUnique(原创 2022-03-09 16:58:46 · 459 阅读 · 0 评论 -
BM55 没有重复项数字的全排列
描述给出一组数字,返回该组数字的所有排列例如:[1,2,3]的所有排列如下[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].(以数字在数组中的位置靠前为优先级,按字典序排列输出。)数据范围:数字个数 0<n≤6要求:空间复杂度 O(n!),时间复杂度 O(n!)示例1输入:[1,2,3]返回值:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2输入:[1]返回值:[[1]]代码原创 2022-03-09 16:50:43 · 326 阅读 · 0 评论 -
BM54 三数之和
描述给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。数据范围:0≤n≤1000,数组中各个元素值满足 ∣val∣≤100空间复杂度:O(n2)O(n^2)O(n2),时间复杂度 O(n2)O(n^2)O(n2)注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-10, -10, 20),(-10, 0, 10)示例原创 2022-03-09 16:30:03 · 334 阅读 · 0 评论 -
BM53 缺失的第一个正整数
描述给定一个无重复元素的整数数组nums,请你找出其中没有出现的最小的正整数进阶: 空间复杂度 O(1),时间复杂度 O(n)数据范围:−231<=nums[i]<=231−1-2^{31}<=nums[i]<=2^{31-1}−231<=nums[i]<=231−1,0<=len(nums)<=5∗1050<=len(nums)<=5*10^50<=len(nums)<=5∗105示例1输入:[1,0,2]返回值:3示例原创 2022-03-09 15:57:51 · 78 阅读 · 0 评论 -
BM52 数组中只出现一次的两个数字
描述一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数据范围:数组长度2≤n≤1000,数组中每个数的大小0<val≤1000000要求:空间复杂度 O(1),时间复杂度 O(n)提示:输出时按非降序排列。示例1输入:[1,4,1,6]返回值:[4,6]说明:返回的结果中较小的数排在前面示例2输入:[1,2,3,3,2,9]返回值:[1,9]代码class Solution {public: /** * 代原创 2022-03-07 15:31:00 · 118 阅读 · 0 评论 -
BM51 数组中出现次数超过一半的数字
描述给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。数据范围:n≤50000,数组中元素的值0≤val≤10000要求:空间复杂度:O(1),时间复杂度 O(n)输入描述:保证数组输入非空,且保证有解示例1输入:[1,2,3,2,2,2,5,4,2]返回值:2示例2输入:[3,3,3,3,2,2,2]返回值:3示例3输原创 2022-03-07 15:19:56 · 801 阅读 · 0 评论 -
BM48 数据流中的中位数
描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。数据范围:数据流中数个数满足1≤n≤1000 ,大小满足1≤val≤1000进阶: 空间复杂度 O(n) , 时间复杂度 O(nlogn)示例1输入:[5,2,3,4,1,6,7,0,8]返回值:"5.00 3.原创 2022-03-07 15:03:05 · 113 阅读 · 0 评论 -
BM45 滑动窗口的最大值
描述给定一个长度为 n 的数组 num 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2原创 2022-03-07 14:41:53 · 65 阅读 · 0 评论 -
BM44 有效括号序列
描述给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。数据范围:字符串长度0≤n≤10000要求:空间复杂度O(n),时间复杂度O(n)示例1输入:"["返回值:false示例2输入:"[]"返回值:true代码class Solution {public: /** * * @param原创 2022-03-07 14:28:12 · 125 阅读 · 0 评论 -
BM43 包含min函数的栈
描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。此栈包含的方法有:push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素数据范围:操作数量满足0≤n≤300 ,输入的元素满足∣val∣≤10000进阶:栈的各个操作的时间复杂度是 O(1) ,空间复杂度是 O(n)示例:输入: [“PSH-1”,“PSH2”,原创 2022-03-07 14:14:00 · 94 阅读 · 0 评论