自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 反转链表的实现

反转链表的实现

2023-01-29 16:15:07 91

原创 将字符串转化为整数(NC100/考察次数Top73/难度较难)

描述:实现函数 atoi ,函数的功能为将字符串转化为整数。提示:仔细思考所有可能的输入情况。这个问题没有给出输入的限制,你需要自己考虑所有可能的情况。示例1输入:“-123”返回值:-123(题目来自牛客网)用C++实现如下class Solution {public: int atoi(const char *str) { //将字符串转换为整数 int len=strlen(str); //求

2021-07-18 14:30:21 335 36

原创 删除有序链表中重复的元素-II(NC24/考察次数Top72/难度中等)

描述:给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→5, 返回1→2→5.给出的链表为1→1→1→2→3, 返回2→3.示例1输入:{1,2,2}返回值:{1}(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param head ListNode类 * @return ListNode类 */

2021-07-11 10:51:15 317 49

原创 包含min函数的栈(NC90/考察次数Top71/难度简单)

描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数,并且调用 min函数、push函数 及 pop函数的时间复杂度都是 O(1)push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素示例:输入: [“PSH-1”,“PSH2”,“MIN”,“TOP”,“POP”,“PSH1”,“TOP”,“MIN”]输出: -1,2,1,-1解析:"PSH-1"表示将-1压入栈中,栈中元素为-1

2021-07-05 23:17:20 223 32

原创 寻找峰值(NC107/考察次数Top70/难度入门)

描述:山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。假设 nums[-1] = nums[n] = -∞。示例1输入:[2,4,1,2,7,8,4]返回值:5(题目来自牛客网)用C++实现如下class Solution {public: /** * 寻找最后的山峰 * @param a int整型一维数组 * @param aLen i

2021-07-03 23:45:13 242 31

原创 换钱的最少货币数(NC126/考察次数Top69/难度简单)

描述:给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。如果无解,请返回-1.【要求】时间复杂度O(n×aim),空间复杂度On。示例1输入:[5,2,3],20返回值:4(题目来自牛客网)用C++实现如下class Solution {public: /** * 最少货币数 * @param arr int整型vector the ar

2021-07-01 23:31:25 257 27

原创 字符串变形(NC89/考察次数Top68/难度简单)

描述:对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。输入描述:给定一个字符串s以及它的长度n(1≤n≤500)返回值描述:请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。示例1输入:“This is a sample”,16

2021-06-30 23:26:52 472 35

原创 二叉搜索树的第k个结点(NC81/考察次数Top67/难度简单)

描述:给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。示例1输入:{5,3,7,2,4,6,8},3返回值:{4}说明:按结点数值大小顺序第三小结点的值为4(题目来自牛客网)用C++实现如下/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL),

2021-06-29 21:41:04 342 32

原创 二分查找-II(NC105/考察次数Top66/难度中等)

描述:请实现有重复数字的升序数组的二分查找给定一个 元素有序的(升序)整型数组 nums 和目标值 target,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返回下标,否则返回 -1示例1输入:[1,2,4,4,5],4返回值:2说明:从左到右,查找到第1个为4的,下标为2,返回2(题目来自牛客网)用C++实现如下class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的

2021-06-28 23:46:49 151 39

原创 回文数字(NC56/考察次数Top65/难度简单)

描述:在不使用额外的内存空间的条件下判断一个整数是否是回文数字提示:负整数可以是回文吗?(比如-1)如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制你可以将整数翻转。但是,如果你做过题目“反转数字”,你会知道将整数翻转可能会出现溢出的情况,你怎么处理这个问题?示例1输入:121返回值:true(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param x int整型 *

2021-06-27 23:59:01 224 37

原创 最长公共前缀(NC55/考察次数Top64/难度简单)

描述:编写一个函数来查找字符串数组中的最长公共前缀。示例1输入:[“abca”,“abc”,“abca”,“abc”,“abcc”]返回值:“abc”(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param strs string字符串vector * @return string字符串 */ string longestCommonPrefix(vector<string

2021-06-26 20:36:19 200 31

原创 二叉树中是否存在节点和为指定值的路径(NC9/考察次数Top63/难度简单)

描述:给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径,例如:给出如下的二叉树,sum=22,返回true,因为存在一条路径 5→4→11→2的节点值之和为 22。示例1输入:{1,2},0返回值:false(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param root TreeNode类 * @param sum int整型

2021-06-25 23:45:17 147 12

原创 删除有序链表中重复的元素(NC25/考察次数Top62/难度简单)

描述:删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2,返回1→2.给出的链表为1→1→2→3→3,返回1→2→3.示例1输入:{1,1,2}返回值:{1,2}(题目来自牛客网)用C++实现如下/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution {public: /** *

2021-06-24 22:23:05 127 29

原创 判断二叉树是否对称(NC16/考察次数Top61/难度简单)

描述:给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)例如:下面这棵二叉树是对称的1/ 2 2/ \ / 3 4 4 3下面这棵二叉树不对称。1/ 2 2\ 3 3示例1输入:{1,2,2}返回值:true(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param root TreeNode类 * @return bool布尔型

2021-06-23 23:16:04 215 27

原创 缺失数字(NC101/考察次数Top60/难度简单)

描述:从0,1,2,…,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小。示例1输入:[0,1,2,3,4,5,7]返回值:6(题目来自牛客网)用C++实现如下class Solution {public: /** * 找缺失数字 * @param a int整型一维数组 给定的数字串 * @param aLen int a数组长度 * @return int整型 */ int solve(in

2021-06-22 22:48:12 259 14

原创 反转数字(NC57/考察次数Top59/难度简单)

描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。你有注意到翻转后的整数可能溢出吗?因为给出的是32位整数。翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。示例1输入:12返回值:21class Solution {public: /** * * @param x int整型 * @return int整型 */ int reverse(int x) { int res = 0;

2021-06-21 23:52:52 162 7

原创 最长公共子序列-II(NC92/考察次数Top58/难度中等)

描述:给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列示例1输入:“1A2C3D4B56”,“B1D23A456A”返回值:“123456”(题目来自牛客网)用C++实现如下// An highlighted blockvar foo = 'bar';...

2021-06-20 23:59:45 354 9

原创 合并区间(NC37/考察次数Top57/难度中等)

描述:给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列。示例1输入:[[10,30],[20,60],[80,100],[150,180]]返回值:[[10,60],[80,100],[150,180]](题目来自牛客网)用C++实现如下class Solution {public: vector<Interval> merge(vector<Interval> &intervals) { vector&l

2021-06-19 23:35:53 238 3

原创 求路径(NC34/考察次数Top56/难度简单)

描述:一个机器人在m×n大小的地图的左上角(起点)。机器人每次向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内示例1输入:2,2返回值:2(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param m int整型 * @param n int整型 * @return int整型

2021-06-19 23:33:22 426 1

原创 链表内指定区间反转(NC21/考察次数Top55/难度中等)

描述:将一个链表m位置到n位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。例如:给出的链表为 1→2→3→4→5→NULL, m=2,n=4,返回 1→4→3→2→5→NULL.示例1输入:{1,2,3,4,5},2,4返回值:{1,4,3,2,5}(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param head ListNode类 * @param m int整型

2021-06-19 23:27:49 120 1

原创 二叉树根节点到叶子节点和为指定值的路径(NC8/考察次数Top54/难度中等)

描述:给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum的路径,例如:给出如下的二叉树,sum=22,返回[[5,4,11,2],[5,8,9]]示例1输入:{1,2},1返回值:[](题目来自牛客网)用C++实现如下class Solution {public: /** * * @param root TreeNode类 * @param sum int整型 * @return int整型ve

2021-06-19 23:22:05 104 1

原创 二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)

描述:给定一个仅包含数字\ 0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1\to 2\to 31→2→3,那么这条路径就用\ 123 123 来代替。找出根节点到叶子节点的所有路径表示的数字之和例如:这颗二叉树一共有两条路径,根节点到叶子节点的路径 1\to 21→2 用数字\ 12 12 代替根节点到叶子节点的路径 1\to 31→3 用数字\ 13 13 代替所以答案为\ 12+13=25 12+13=25示例1输入

2021-06-19 23:16:12 267 1

原创 最小编辑代价(NC35/考察次数Top52/难度较难)

描述:给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。示例1输入:“abc”,“adc”,5,3,2返回值:2(题目来自牛客网)用C++实现如下class Solution {public: /** * min edit cost * @param str1 string字符串 the string * @param str2 string字符串 th

2021-06-19 23:10:45 114 1

原创 判断一个链表是否为回文结构(NC96/考察次数Top51/难度简单)

描述:给定一个链表,请判断该链表是否为回文结构。示例1输入:[2,1]返回值:false示例2输入:[1,2,2,1]返回值:true(题目来自牛客网)用C++实现如下/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution {public: /** * * @param head ListNode类 the head

2021-06-19 23:06:11 135 2

原创 进制转换(NC112/考察次数Top50/难度简单)

描述:给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数示例1输入:7,2返回值:“111”

2021-06-18 23:59:36 125 9

原创 字符串出现次数的TopK问题(NC97/考察次数Top49/难度中等)

描述给定一个字符串数组,再给定整数k,请返回出现次数前k名的字符串和对应的次数。返回的答案应该按字符串出现频率由高到低排序。如果不同的字符串有相同出现频率,按字典序排序。对于两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。比如"ah1x"小于"ahb",“231”<”32“字符仅包含数字和字母示例1输入:[“a”,“b”,“c”,“b”],2返回值:[[“b”,“2”],[“a”,“1”]]说明:"b"出现了2次,记[“b”,“2”],"

2021-06-18 23:57:48 353 2

原创 表达式求值(NC137/考察次数Top48/难度中等)

描述:请写一个整数计算器,支持加减乘三种运算和括号。示例1输入:“1+2”返回值:3示例2输入:“(2*(3-4))*5”返回值:-10(题目来自牛客网)用C++实现如下class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回表达式的值 * @param s string字符串 待计算的表达式 * @return int整型 */

2021-06-18 23:50:23 220 1

原创 矩阵的最小路径和(NC59/考察次数Top47/难度中等)

描述:给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入:[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]返回值:12(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param matrix int整型vector<vector<>>

2021-06-17 23:48:59 129 13

原创 数组中出现次数超过一半的数字(NC73/考察次数Top46/难度简单)

描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000示例1输入:[1,2,3,2,2,2,5,4,2]返回值:2(题目来自牛客网)用C++实现如下class Solution {public: int MoreThanHalfNum_Solut

2021-06-17 23:44:24 262 1

原创 平衡二叉树(NC62/考察次数Top45/难度简单)

描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。注:我们约定空树是平衡二叉树。示例1输入:{1,2,3,4,5,6,7}返回值:trueclass Solution { //注意从定义出发,平衡二叉树的定义是:空树 //

2021-06-17 23:39:02 146 1

原创 链表排序(NC70/考察次数Top44/难度简单)

描述:给定一个无序单链表,实现单链表的排序(按升序排序)。示例1输入:[1,3,2,4,5]返回值:{1,2,3,4,5}(题目来自牛客网)用C++实现如下/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** * * @param head ListNode类 the head node * @ret

2021-06-16 23:40:14 216 3

原创 判断回文(NC141/考察次数Top43/难度入门)

描述:给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。示例1输入:“absba”返回值:true(题目来自牛客网)用C++实现如下class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param str string字符串 待判断的字符串 * @return bool布尔型 */ bo

2021-06-16 23:37:03 91 1

原创 二叉树的最大深度(NC13/考察次数Top42/难度简单)

描述:求给定二叉树的最大深度,最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。示例1输入:{1,2,3,4,#,#,5}返回值:3(题目来自牛客网)用C++实现如下/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: /** * * @param ro

2021-06-16 23:31:22 103 1

原创 岛屿数量(NC109/考察次数Top41/难度中等)

描述:给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个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]]返回值:3class Solution {public: /** * 判断岛屿数量 * @param grid char字符型vector<v

2021-06-15 23:26:10 128 2

原创 输出二叉树的右视图(NC136/考察次数Top40/难度中等)

描述:请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图示例1输入:[1,2,4,5,3],[4,2,5,1,3]返回值:[1,3,5]备注:二叉树每个节点的值在区间[1,10000]内,且保证每个节点的值互不相同。class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 求二叉树的右视图 * @param xianxu int整型vector 先序遍历

2021-06-15 23:19:39 168 7

原创 容器盛水问题(NC128/考察次数Top39/难度中等)

描述:给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。示例1输入:[3,1,2,5,2,4]返回值:5(题目来自牛客网)用C++实现如下class Solution {public: /** * max water * @param arr int整型vector the array * @return long长整型 */ long long maxWater(vector&lt

2021-06-15 23:12:23 123 3

原创 字符串的排列(NC121/考察次数Top38/难度较难)

描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。示例1输入:“ab”返回值:[“ab”,“ba”](题目来自牛客网)用C++实现如下class Solution {public: vector<string> Permutation(string

2021-06-14 23:00:11 195 13

原创 合并k个已排序的链表(NC51/考察次数Top37/难度较难)

描述:合并k个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度。示例1输入:[{1,3,4},{2,5,6,7}]返回值:{1,2,3,4,5,6,7}(题目来自牛客网)用C++实现如下/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {

2021-06-14 22:48:54 897 1

原创 股票(一次性交易)(NC7/考察次数Top36/难度简单)

描述:假设你有一个数组,其中第i个元素是股票在第i天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。示例1输入:[1,4,2]返回值:3(题目来自牛客网)用C++实现如下class Solution {public: /** * * @param prices int整型vector * @return int整型 */ int maxProfit(vector&lt

2021-06-14 22:25:14 156 2

原创 设计getMin功能的栈(NC90/考察次数Top35/难度简单)

描述:实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。示例1输入:[[1,3],[1,2],[1,1],[3],[2],[3]]三种操作,op1表示push,op2表示pop,op3表示getMin返回值:[1,2](题目来自牛客网)用C++实现如下class Solution {public: /** * return a array which include all ans for op3 * @param op int

2021-06-14 21:01:41 63 1

空空如也

空空如也

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

TA关注的人

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