七牛云笔试6.18后端开发
算法题第一个乍一看好像力扣原题,但是输入是List[int],并非root,
然后一直纠结换成树节点再做,但是好像TreeNode不能直接使用,
后来有一个新的思路,寻找父节点和孩子节点的关系 2*i+1,2*i+2
反正最后还是没写出来,回来让gpt写了,思路应该可以吧。
from typing import List
from collections import deque
def right_side_view_from_list(nums: List[int]) -> List[int]:
if not nums or nums[0] == -1:
return []
result = []
q = deque()
q.append(0) # 从根节点的索引 0 开始
while q:
level_size = len(q)
for i in range(level_size):
idx = q.popleft()
if nums[idx] == -1:
continue
if i == level_size - 1:
result.append(nums[idx])
left_idx = 2 * idx + 1
right_idx = 2 * idx + 2
if left_idx < len(nums):
q.append(left_idx)
if right_idx < len(nums):
q.append(right_idx)
return result
然后一直纠结换成树节点再做,但是好像TreeNode不能直接使用,
后来有一个新的思路,寻找父节点和孩子节点的关系 2*i+1,2*i+2
反正最后还是没写出来,回来让gpt写了,思路应该可以吧。
from typing import List
from collections import deque
def right_side_view_from_list(nums: List[int]) -> List[int]:
if not nums or nums[0] == -1:
return []
result = []
q = deque()
q.append(0) # 从根节点的索引 0 开始
while q:
level_size = len(q)
for i in range(level_size):
idx = q.popleft()
if nums[idx] == -1:
continue
if i == level_size - 1:
result.append(nums[idx])
left_idx = 2 * idx + 1
right_idx = 2 * idx + 2
if left_idx < len(nums):
q.append(left_idx)
if right_idx < len(nums):
q.append(right_idx)
return result
全部评论
这题我怎么调都是只有50%
只会写树节点的
GPT写不会被判作弊吗
相关推荐
点赞 评论 收藏
分享
01-16 22:31
赣南师范大学 运营
白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。
2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。
3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。 点赞 评论 收藏
分享