首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛一霸
获赞
256
粉丝
26
关注
14
看过 TA
124
男
东风小学
2025
嵌入式工程师
IP属地:上海
誓不罢休
私信
关注
拉黑
举报
举报
确定要拉黑牛一霸吗?
发布(155)
评论
刷题
牛一霸
关注TA,不错过内容更新
关注
2021-07-21 18:25
已编辑
东风小学 嵌入式工程师
题解 | #二叉树的最大路径和#
题目:二叉树的最大路径和 描述:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。这个路径的开始节点和结束节点可以是二叉树中的任意节点。 示例1:输入:{-2,1},返回值:1。 解法一: 思路分析:在该题目中可以使用递归的方法去解决问题,设置最大值为max,即时更新,时刻返回的是左节点,右节点,0中的最大值,代表路径包括左节点,右节点,以及路径在此停止。max更新就是考虑所有情况,每次递归返回不需要考虑左右+val的值,因为已经确保路径跑到当前节点的父节点,返回值就是经过该结点的最大路径部分值。 举例说明:输入: [-10,9,20,null,nu...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-16 23:24
已编辑
东风小学 嵌入式工程师
题解 | #链表中环的入口结点#
题目:链表中环的入口结点 输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台将这2个会组装成一个有环或者无环单链表 返回值描述:返回链表的环的入口结点即可。而我们后台程序会打印这个节点 示例1:输入:{1,2},{3,4,5},返回值:3 说明:返回环形链表入口节点,我们后台会打印该环形链表入口节点,即3 解法一: 思路分析:正常情况下,在判断是否有环的存在,我们可以设定两个速度不同的物体,让他们同时从同一地点出发,如果相遇则证明有环,反之不存在环,则速度不同的物体从同一地点出发不一定相遇,因此,可定义两个指针fast和...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-21 16:36
已编辑
东风小学 嵌入式工程师
题解 | #重排链表#
题目:重排链表 描述:将给定的单链表 L:L0→L1→…→Ln−1→Ln重新排序为:L0→Ln→L1→Ln−1→L2→Ln−2→…L_0→L_n要求使用原地算法,不能只改变节点内部的值,需要对实际的节点进行交换。 示例1:输入:{1,2,3,4},返回值:{1,4,2,3} 说明:给定head链表1->2->3->4,重新排列为1->4->2->3,会取head链表里面的值打印输出 解法一: 思路分析:我们可以使用快慢指针的方法来解决该问题,首先将链表一分为二,将第二部分反转,反转的这一步非常重要,最后将两个链表连接...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-16 22:48
已编辑
东风小学 嵌入式工程师
题解 | #大数加法#
题目:大数加法 描述:以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。 (字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成) 示例1:输入:"1","99",返回值:"100",说明:1+99=100 解法一: 思路分析:首先通读题目,我们应该主要理解的是以字符串的形式读入数字,因为两个整数的相加可能会引发溢出的问题,所以用字符串的格式存储字符串s和t,同时判断字符串的长度,设置一个最大值maxlen表示可能的最大长度为多少,最终通过Ascil值的判断,...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-16 22:46
已编辑
东风小学 嵌入式工程师
题解 | #剪绳子#
题目:剪绳子 描述:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 输入描述:输入一个数n,意义见题面。(2 <= n <= 60) 返回值描述:输出答案。 示例1:输入:8,返回值:18 解法一: 思路分析:我们可以首先定义函数f(n)为把长度为n的绳子剪成若干段后乘积的最大值,则...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-21 16:38
已编辑
东风小学 嵌入式工程师
题解 | #二叉树根节点到叶子节点的所有路径和#
题目:二叉树根节点到叶子节点的所有路径和 描述:给定一个仅包含数字0−9的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1→2→3,那么这条路径就用123来代替。 找出根节点到叶子节点的所有路径表示的数字之和 例如:这颗二叉树一共有两条路径,根节点到叶子节点的路径1→2用数字12代替,根节点到叶子节点的路径1→3用数字13代替,所以答案为12+13=25。 示例1:输入:{1,0},返回值:10 解法一: 思路分析:通过题目分析,我们可以将每条根节点到叶子结点的路径和用一个数字代替,如果向下一个结点,就将之前的数字...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-21 17:47
已编辑
东风小学 嵌入式工程师
题解 | #二叉树根节点到叶子节点和为指定值的路径#
题目:二叉树根节点到叶子节点和为指定值的路径 描述:给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于 sum的路径,例如:给出如下的二叉树, sum=22,图如下所示: 返回[[5,4,11,2],[5,8,9]]。 解法一: 思路分析:首先,通读题目,通过理解相应题目,我们可以采用递归的方法去解决问题,如果递归的当前结点不是叶子结点,就把sum减去当前的值,并把当前结点当作路径添加到临时的数组当中去,然后去检查其左右结点,如果是叶子结点的话,检查其剩余的sum值是否与该值相等,如果相等就把最终结果放...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-02 21:34
东风小学 嵌入式工程师
题解 | #买卖股票的最好时机#
题目:买卖股票的最好时机 描述:假设你有一个数组,其中第 i个元素是股票在第 i天的价格。 你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。 示例1:输入:[1,4,2],返回值:3 解法一: 思路分析:通读题目,思路很简单,可以直接采用暴力法解决问题,其余的方法就是在此基础上进行问题的优化。首先我们用变量i表示买入股票的时间,用变量j表示卖出股票的时间,所以prices[j] - prices[i]表示的就是股票的收益,通过不断循环找出其中的最大值即可。 具体实例分析:输...
算法自然分析
0
点赞
评论
收藏
分享
2021-07-02 00:07
东风小学 嵌入式工程师
题解 | #判断链表中是否有环#
题目:判断链表中是否有环 描述:判断给定的链表中是否有环。如果有环则返回true,否则返回false。 你能给出空间复杂度的解法么?输入分为2部分,第一部分为链表,第二部分代表是否有环,然后回组成head头结点传入到函数里面。-1代表无环,其他的数字代表有环,这些参数解释仅仅是为了方便读者自测调试。 示例1:输入:{3,2,0,-4},1,返回值:true,说明:第一部分{3,2,0,-4}代表一个链表,第二部分的1表示,-4到位置1,即-4->2存在一个链接,组成传入的head为一个带环的链表,返回true。 解法一: 思路分析:判断链...
算法自然分析
0
点赞
评论
收藏
分享
2021-06-23 14:11
东风小学 嵌入式工程师
2021-06-23
在牛客打卡66天,今天学习:刷题 4 道/代码提交 16 次
每日监督打卡
0
点赞
评论
收藏
分享
2021-06-23 18:52
已编辑
东风小学 嵌入式工程师
题解 | #把数组排成最小的数#
题目:把数组排成最小的数 描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 示例1:输入:[3,32,321],返回值:"321323"。 思路分析:例题中给了三个数的集合,我们首先分析两个数的情况[3,32],通过分析,可以得到332>323,因此可以将数组改变为按大小排序[32,3],当存在三个数的时候,我们进行分析三个数的情况: [3,32,321] 首先进行两两之间的配对,因为332>323,...
算法自然分析
0
点赞
评论
收藏
分享
2021-06-23 18:18
已编辑
东风小学 嵌入式工程师
题解 | #字符串的排列#
题目:字符串排列 描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 示例1:输入:"ab",返回值:["ab","ba"] 解法一: 思路描述:这道题属于经典的DFS题目,其大致思想可以为,先确定第i个字符,然后将i从0到最大值完成遍历枚举,然后对i+1个字符通过递归的方式,使用全排...
算法自然分析
0
点赞
评论
收藏
分享
2021-06-23 11:38
东风小学 嵌入式工程师
题解 | #连续子数组的最大和#
题目:连续子数组的最大和 描述:输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n). 示例1:输入:[1,-2,3,10,-4,7,2,-5],返回值:18 说明:输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。 解法一: 思路分析:首先设置两个指针变量i和j,设置一个max的int类型,将array[]数组中的第一个值确定为max对象,设置一个count对象不断进行循环判断,并通过c...
算法自然分析
0
点赞
评论
收藏
分享
2021-06-23 00:12
东风小学 嵌入式工程师
题解 | #数组中的逆序对#
题目:数组中的逆序对 描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007 输入描述:题目保证输入的数组中没有的相同的数字 示例1:输入:[1,2,3,4,5,6,7,0]返回值:7 解法一: 思路分析:首先使用暴力法去分析和思考问题,因为逆序对满足的条件为,前面的一个数字大于后面的数字,则这两个数字就组成了一个逆序对,所以用暴力法可以很方便的解决问题。 设定两个指针,分别为i和j,使用...
算法自然分析
0
点赞
评论
收藏
分享
2021-06-22 14:29
东风小学 嵌入式工程师
题解 | #最小的K个数#
题目:最小的K个数 描述:给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组 示例1:输入:[4,5,1,6,2,7,3,8],4,返回值:[1,2,3,4] 解法一: 解题思路:乍一看,这种题目相对来说比较简单,在思考的时候,可以想一种比较简单的算法,因为想要找到数组中最小的k个数,可以直接调用C++里边的sort()函数,将数组中的元素,按照从小到大的顺序进行排序,排序好以后,新建一个容器对象:res,整一个for循环,将排序...
算法自然分析
0
点赞
评论
收藏
分享
1
3
4
5
6
7
11
关注他的用户也关注了:
牛客网
牛客企业服务