首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客486802834号
获赞
8
粉丝
1
关注
8
看过 TA
6
四川师范大学
2023
后端
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客486802834号吗?
发布(78)
刷题
牛客486802834号
2022-02-10 17:15
后端
剑指offer:63-题解 | #买卖股票的最好时机(一)#
题目描述 题解:对数组进行遍历,找到买入价格最小的那一天 图示为某大佬的展示图,在此引用 代码 class Solution { public: /** * * @param prices int整型vector * @return int整型 */ int maxProfit(vector<int>& prices) { // write code here int minnum = prices[0]; int maxprice = 0; ...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-10 16:20
已编辑
后端
剑指offer:62-题解 | #扑克牌顺子#
题目描述: 现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。 有如下规则: A为1,J为11,Q为12,K为13,A不能视为14 大、小王为 0,0可以看作任意牌 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。 数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13] 要求:空间复杂度 O(1)O(1),时间复杂度 O(nlogn)O(nlogn),本题也有时间复杂度 O(n)O(n) 的解法 输入描述:输入五张扑克牌的值 返回值描述:五张扑克牌能否组成顺子。 题解思路: 当数据存在重复时候,就...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-10 15:05
已编辑
后端
剑指offer:58-题解 | #左旋转字符串#
题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S ,请你把其循环左移 K 位后的序列输出。例如,字符序列 S = ”abcXYZdef” , 要求输出循环左移 3 位后的结果,即 “XYZdefabc” 。 示例1 输入: "abcXYZdef",3------ 返回值: "XYZdefabc" 题解1:暴力三次for循环 步骤: 第一次for循环将str中的字符输入到数组vector v中 第二次for循环将左移的字符全部插入到v数组的后面 第三次for循环,取出数组中的字符,并...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-10 12:11
后端
剑指offer:57-题解 | #和为S的两个数字#
题目描述 输入一个递增排序的数组array和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回任意一组即可,如果无法找出这样的数字,返回一个空数组即可。 输入: [1,2,4,7,11,15],15 返回值: [4,11] 说明: 返回[4,11]或者[11,4]都是可以的 题解1:使用双层for循环 ---会超时 题解1:使用双指针 思路:由于是递增的有序数组,所以可以采用双指针 图示来自某位大佬,在此借鉴: class Solution { public: vector<int> FindNumbersWithSum(v...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-10 11:42
后端
剑指offer:56-题解 | #数组中只出现一次的两个数字#
题目描述 **题解1:使用map<int,int> key为元素,int为元素个数 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector * @return int整型vector */ vector<int> FindNumsAppearOnce(vector<int>& array) { // write...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 22:32
后端
剑指offer:55-题解 | #二叉树的深度#
题目描述 题解1:直接对二叉树进行中序遍历 使用vector保存每条二叉树的路径长度,然后排序找到最长路径 或者使用大根数,保存每条二叉树的路径长度,然后弹出最长路径 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void inorder(TreeNode * root,priority_q...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 19:41
后端
剑指offer:53-题解 | #数字在升序数组中出现的次数#
题目描述 描述: 给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数 示例1 输入: [1,2,3,3,3,3,4,5],3 返回值: 4 题解1:暴力法,遍历数组中所有的元素 class Solution { public: int GetNumberOfK(vector<int> data ,int k) { // 题解1:暴力法 int count = 0; for(int i = 0;i<data.size();i++){ if(data[i]...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 18:17
已编辑
后端
剑指offer:52-题解 | #两个链表的第一个公共结点#
题目描述 示例1 输入: {1,2,3},{4,5},{6,7} 返回值: {6,7} 说明: 第一个参数{1,2,3}代表是第一个链表非公共部分,第二个参数{4,5}代表是第二个链表非公共部分,最后的{6,7}表示的是2个链表的公共部分 这3个参数最后在后台会组装成为2个两个无环的单链表,且是有公共节点的 题解1:双指针模式 使用两个指针p1,p2,p1从链表1的头节点开始遍历,p2链表2的头节点开始遍历。 p1和p2一起遍历,当p1先走完链表1的尽头(为null)的时候,则从链表2的头节点继续遍历,同理,如果p2先走完了链表2的尽头,则从链表1的头节点继续遍历. 因为两个指针,同样的...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 16:51
后端
剑指offer:50-题解 | #第一个只出现一次的字符#
题目啊描述 在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) 示例1 输入: "google" 返回值:4 题解1:使用unordered_map<char,ing>,其中key是字符,value是字符对应的个数 class Solution { public: int FirstNotRepeatingChar(string str) { //题解1:暴力法 //两次遍历,第一次将各个字符存入unordered_map<char,int>中...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 15:33
后端
剑指offer:49-题解 | #丑数#
题目描述 分析:1,2,3,4,5,6都是丑数,所以,当n<7时候,丑数的个数位 . 丑数的形式就是2^x 3^y 5^z 图片参考B站上的解析:https://www.bilibili.com/video/BV1CK411c7gx?p=43 这个讲解采用作图方式,是比较清晰直观的. class Solution { public: int GetUglyNumber_Solution(int index) { //由规律可知,当1<=index<=7时,1,2,3,4,5,6,7都是丑数 //因此 i...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 11:41
后端
剑指offer:48-题解 | #最长不含重复字符的子字符串#
题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 数据范围:s.length≤40000 题解:动态规划 哈希表统计: 遍历字符串 s 时,使用哈希表(记为 dic )统计 各字符最后一次出现的索引位置 。 左边界 i 获取方式: 遍历到 s[j]时,可通过访问哈希表 dic[s[j]]获取最近的相同字符的索引 i。 复杂度分析: 时间复杂度 O(N) : 其中 N 为字符串长度,动态规划需遍历计算 dp 列表。 空间复杂度 O(1) :字符的 ASCII 码范围为 0 ~ 127 ,哈希表 dic 最多使用 O(128) = O(1) 大小的额外空间...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-09 10:49
后端
剑指offer:47-题解 | #礼物的最大价值#
题解:一般遇到路径的问题,首先想到一层一层进行遍历 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param grid int整型vector<vector<>> * @return int整型 */ int maxValue(vector<vector<int> >& grid) { //题解1:使用辅助数组,不改变原来的数组 ...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-08 17:09
后端
剑指offer:45-题解 | #把数组排成最小的数#
解题思路: 要注意题目的意思是把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 先将整数转换为字符串,再以字符串形式拼接后进行比较:比较方式如下 A+B 与 B+A 之间比较的问题(注意:这里的A+B并不是A加上B,而是A拼上B),当A+B小于B+A的时候,很明显A要放在B的前面,这样才能使得结果小。 如: 当A = 206,B = 1 此时 A+B = 2061 B+A = 1206 可以看到 A+B > B+A,所以很明显B需要放在A的前面,即B+A,才能使得拼出来的数字最小。 题解步骤如下: 1、先将整型数组转化为字符串型数组 2、定义...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-08 14:59
后端
题解 | #连续子数组的最大和#
描述 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 数据范围: 要求:时间复杂度为 O(n)O(n),空间复杂度为 O(n)O(n) 进阶:时间复杂度为 O(n)O(n),空间复杂度为 O(1)O(1) 题解1:规律分析 输入: [1,-2,3,10,-4,7,2,-5] 累加子数组和curSum分别为:1,-1,3,13,9,16,18,13 最大子数组和greaterSum为 1,1,3,13,13,16,18,18 所以,每当curSum<=0时候,curSum = array[i] 每当curSum<=0时...
0
点赞
评论
收藏
转发
牛客486802834号
2022-02-07 22:33
后端
题解 | #数据流中的中位数#
/* 题解1:使用数组排序 题解2:使用大小根堆----------推荐用法 大根堆 priority_queue<int> maxheap;保存中位数左边的小值 小根堆 priority_queue<int,vector<int>,greater<int> > minheap; 保存中位数右边的大值 小根堆 priority_queue<类型,<存储方式>,<比较函数>空格 > 注意:空格必须有,否则可能引起歧义 */ #include<iostream> using...
0
点赞
评论
收藏
转发
1
2
3
4
5
6
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务