第二道:给出一个数组n[ ],其中n[0]=0,从n[0]开始向后走,第一步可走的距离len满足1<=len<=n.length/2,之后的每一步距离等于该位置的值n[index],问能否走到数组的最后一个位置,如果能,返回最小的步数; 这题也是一道比较简单的动态规划,dp[ ]全部初始化为Integer.MAX_VALUE,走第一步时能到的位置赋值为1,然后dp[i+n[i]]=Math.min(dp[i]+1,dp[i+n[i]])遍历即可; 第三道:一个树状结构,每个节点有且仅有一个父节点,可能有多个子节点,根节点没有父节点, 给出一个二维数组test[ ][ ]用来表示这样的一棵树,tes[i]={a,b},表示a的父节点为b。保证test数据合法。再给出一个节点数值k,从该树种删去节点k及其所有子节点,升序输出剩下的节点数值。 这题我的思路是新建一个哈希集合sets,遍历test,保存所有元素;然后新建集合del,再次遍历test,找到k的子节点,重复这个过程,使del保存所有k的子节点,最后从sets中remove掉del中的元素。
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
01-19 15:35
公务员 锡山 11k 本科211
offer求求哩:就是你天天乱花我们纳税人的钱是吧😆😆
点赞 评论 收藏
分享
2024-11-29 09:42
晋中信息学院 C++
贺兰星辰:我说真的,这简历你自己愿意读一遍吗...
点赞 评论 收藏
分享
牛客网
牛客企业服务