linrty level
获赞
38
粉丝
5
关注
6
看过 TA
227
马鞍山学院
2025
Java
IP属地:广东
暂未填写个人简介
私信
关注
2024-09-01 16:23
已编辑
马鞍山学院 Java
1.从前往后,从后往前分别遍历一遍,分别维护一个单调区间最值,最后遍历一下如果遇到长度为0的直接跳过,不为0把两区间长度加起来+1比较是不是最大值即可。2.给定1和2的序列,有些数字需要固定在一个位置,有些可以自由移动,数据量100,动态规划做,转移方程,dp[i][j][0] = min(dp[i-1][j][0],dp[i-1][j][1]+1);dp[i][j][1] = min(dp[i][j-1][0]+1,dp[i][j-1][1]);其中i和j分别表示前(i+j)个数字中有i个1和j个2最后注意一下特殊的地方处理就行比如固定值的地方3.数据也太弱了吧,我把黑色节点计数输出一下就过82%,再输出个黑色节点数-1(也就是红节点删除只会影响一个黑节点丢失)过18%,这测试数据直接给试出来了,然后直接判断一下有没有红节点度为1的,有就输出黑节点总数(相当于有个叶子节点是红节点不会影响任何黑节点),没有就黑节点总数-1言归正传正解dfs看红节点的子节点数量维护一下就行,注意不能直接从root向下遍历求一个最小黑子节点树随便就能举出一个反例                                      黑                  |                 红                  |                   黑                    |                     红                    /\               黑  黑  这种答案肯定是3
查看3道真题和解析 投递小红书等公司9个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务