七牛云笔试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
全部评论
这题我怎么调都是只有50%
1 回复 分享
发布于 06-19 14:17 北京
只会写树节点的
点赞 回复 分享
发布于 06-20 10:12 江苏
GPT写不会被判作弊吗
点赞 回复 分享
发布于 06-19 00:12 重庆

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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