牛课堂8.31晚八点开始直播,让左老师伴随你8月最后一天

今晚八点牛课堂又与大家见面啦,伴随大家8月的最后一天!加油加油,冲刺名企,斩获校招各路offer就在此一举啦!

下面是题目,给大家先预习一下~~

题目一

将搜索二叉树转换成双向链表

【题目】

对二叉树的节点来说,有本身的值域,有指向左孩子和右孩子的两个指针;对双向链表的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针。在结构上,两种结构有相似性,现在有一棵搜索二叉树,请将其转换为一个有序的双向链表。

例如,节点定义为:


public class Node {

public int value;

public Node left;

public Node right;

public Node(int data) {

this.value = data;

}

}

【要求】

所以时间复杂度为O(N),额外空间复杂度为O(h),h为二叉树的高度



题目二

一种怪异的节点删除方式

【题目】

链表节点值类型为int型,给定一个链表中的节点node,但不给定整个链表的头节点。如何在链表中删除node?请实现这个函数,并分析这么会出现哪些问题。

【要求】

时间复杂度为O(1)。



题目三

清楚的讲一遍KMP算法以及一个与其相关的推广

【题目】

给定字符串str1和str2,请返回str2在str1中第一次出现的位置;如果str1不包含str2,返回-1

【要求】

时间复杂度O(N)

【推广题目】

给定两棵二叉树的头节点head1和head2,判断head2是不是head1的子树

【要求】

时间复杂度O(N)



题目四

来自观众的一个极好的优化

【题目】

未排序数组中累加和小于或等于给定值的最长子数组长度问题

给定一个无序数组arr,其中元素可正、可负,可0,给定一个整数k。求arr所有的子数组中累加和小于或等于k的最长子数组长度

【例子】

arr=[3,-2,-4,0,6],k=-2,相加和小于或等于-2的最长子数组为[3,-2,-4,0],所以结果返回4

【要求】

实现时间复杂度O(N)的方法

【特别说明】

在第二次课上,我们讲过这个题,当时讲解的是时间复杂度O(N*logN)的方法和相关的算法原型。上一周,来自滴滴快车的秦凯杰工程师留言给我,说一个他认识的牛人实现出了时间复杂度O(N)的方法,并把代码发给了我。我仔细阅读之后发现他提供的时间复杂度O(N)的方法是对的。感谢秦凯杰工程师和他的牛人朋友。我们在这次课上详细讲述该方法

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
找个工作 学历是要卡的 要求是高的 技能不足是真的 实习经验是0的 简历无处可写是事实的 钱不好赚是真的 想躺平又不敢躺 也不甘心躺 怕自己的灵感和才华被掩埋甚至从未被自己发现 又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务