首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客486802834号
获赞
8
粉丝
1
关注
8
看过 TA
6
四川师范大学
2023
后端
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客486802834号吗?
发布(78)
刷题
牛客486802834号
2022-02-28 12:26
后端
JZ30-题解 | #包含min函数的栈#
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数, 输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。 此栈包含的方法有: push(value):将value压入栈中 pop():弹出栈顶元素 top():获取栈顶元素 min():获取栈中最小元素 示例: 输入: ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"] 输出: -1,2,1,-1 解析: "PSH-1"表示将-1压入栈中,栈中元素为-1 "PSH2"表示将2压入栈中,栈中元素为2,-1 “MIN...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-28 12:12
后端
JZ29-题解 | #顺时针打印矩阵#
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] 则依次打印出数字 [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10] 题解:四个指针 代码 /* 描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] 则依次打印出数字 [1,2,...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-28 12:07
后端
JZ28-题解 | #对称的二叉树#
题目描述 给定一棵二叉树,判断其是否是自身的镜像(即:是否对称) ** 题解:递归** 注意: 1、对于需要比较节点中的值的时候,需要提前判断节点是否为空; 2、如果不需要比较节点的值,那么递归调用时候不需要提前判断节点是否为空; 3、如果是需要有两个节点进行比较,那么需要创建一个递归函数; 递归函数中,通常先进性比较,然后分别进行左子树和右子树的递归 4、如果不需要两个节点进行比较,不需要重新创建递归函数,以本函数作为递归函数。 代码 /* 描述 给定一棵二叉树,判断其是否是自身的镜像(即:是否对称) */ /* 题解1:递归 注意: 1、对于...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-28 11:40
已编辑
后端
JZ27-题解 | #二叉树的镜像#
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 题解 这种是自身进行比较的,没有结点之间的比较,通常采用一个递归函数. 本题目直径进行左右子树结点交换操作,然后一次对左右子树进行递归. 代码 /* 描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入: {8,6,10,5,7,9,11} 返回值: {8,10,6,11,9,7,5} */ #include<iostream> using namespace std; struct TreeNode { int val; struct TreeNode* left; struct...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-28 11:01
后端
JZ26-题解 | #树的子结构#
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 题解 这种需要自己与自己相互比较的,通常需要两个递归函数. 代码 /* 描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 */ /* 题解1:采用递归 注意:该题目不能采用两个辅助...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-27 21:58
后端
JZ25-题解 | #合并两个排序的链表#
题目描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6} 题解1:一次迭代 代码 struct ListNode { int val; struct ListNode* next; ListNode(int x) : val(x), next(NULL) { } }; ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* myhe...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-27 21:48
已编辑
后端
JZ-24题解 | #反转链表#
题目描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 题解 代码 struct ListNode { int val; struct ListNode* next; ListNode(int x) : val(x), next(NULL) { } }; ListNode* ReverseList(ListNode* pHead) { ListNode* pre = NULL; ListNode* cur = pHead; ListNode* temp = NULL; while (c...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-27 21:41
后端
JZ23-题解 | #链表中环的入口结点#
题目描述 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。 数据范围:n≤10000,1<=结点值<=10000 要求:空间复杂度 O(1),时间复杂度O(n) 例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示: 题解1:使用set容器 代码 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { ...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-27 21:02
后端
JZ22-题解 | #链表中倒数最后k个结点#
题目描述 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。 如果该链表长度小于k,请返回一个长度为 0 的链表。 **题解1:使用双指针,fast指向第k个节点,slow指向第一个节点 //此时,fast后面的节点个数为链表长度-k, /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 21:28
后端
JZ19-题解 | #正则表达式匹配#
题目描述 请实现一个函数用来匹配包括'.'和'* '的正则表达式。模式中的字符'.'表示任意一个字符,而'* '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab* ac* a"匹配,但是与"aa.a"和"ab* a"均不匹配. 算法思路:引自Maokt 每次从字符串里取出一个字符与模式中的字符匹配,如果模式中的字符是‘.’,它可以匹配字符串中的任意字符,如果不是,那么如果它与字符串中的字符相等则匹配。当字符串的字符和模式的字符匹配时,接着匹配后面的字符。 下面,考虑模式中的第二个字符是不是‘* ’...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 21:21
后端
JZ18-题解 | #删除链表的节点#
题目描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。 1.此题对比原题有改动 2.题目保证链表中节点的值互不相同 3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 算法思路 建立虚拟头节点 双指针 代码 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class S...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 21:11
后端
题解 | #打印从1到最大的n位数#
题目描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印 n 为正整数,0 < n <= 5 示例1 输入:1 返回值:[1,2,3,4,5,6,7,8,9] 代码 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 最大位数 * @return int整型vector...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 21:07
后端
JZ16-题解 | #数值的整数次方#
题目描述 实现函数 double Power(double base, int exponent),求base的exponent次方。 注意: 1.保证base和exponent不同时为0。 2.不得使用库函数,同时不需要考虑大数问题。 3.有特殊判题,不用考虑小数点后面0的位数。 题解:来自官方题解牛客题霸 假设求x^6 ,已知6可以表示成二进制110, 代码 class Solution { public: double Power(double b, int n) { if (n < 0) { b = 1 / b;...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 20:52
后端
JZ15-题解 | #二进制中1的个数#
题目描述 输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。 知识点: 把整数右移动一位和把整数除以2在数学上是相等的,但是在运算效率上,移位运算效率远高于除法运算。 把一个整数减去1之和再和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中最右边的1变为0. 题解1:采用知识点1 题解2:采用知识点2:位运算 n&(n-1) class Solution { public: int NumberOf1(int n) { int count = 0; while(n){ ...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-23 20:33
已编辑
后端
JZ14-题解 | #剪绳子#
题目描述: 给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳子的长度记为 k[1],...,k[m] 。请问 k[1]* k[2]... k[m] 可能的最大乘积是多少? 例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是 18 。 数据范围:2≤n≤60 题解:动态规划(题解来自Maokt) 我们想要求长度为n的绳子剪掉后的最大乘积,可以从前面比n小的绳子转移而 用一个dp数组记录从0到n长度的绳子剪掉后的最大乘积,也就是dp...
0
点赞
评论
收藏
转发
1
2
3
4
5
6
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务