每日一道算法题 LCR 150. 彩灯装饰记录 II

题目

LCR 150. 彩灯装饰记录 II - 力扣(LeetCode)

Python

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def decorateRecord(self, root: Optional[TreeNode]) -> List[List[int]]:ans=[]if not root:return ansqu=[root]while qu:le=len(qu)row=[]for _ in range(le):cur=qu.pop(0)row.append(cur.val)if cur.left:qu.append(cur.left)if cur.right:qu.append(cur.right)ans.append(row)return ans

C++

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/#include <queue>
class Solution {
public:vector<vector<int>> decorateRecord(TreeNode* root) {vector<vector<int>> ans;queue<TreeNode*> qu;if(root!=NULL)  qu.push(root);while(!qu.empty()){int le=qu.size();vector<int> row;for(int _=0;_<le;_++){TreeNode* cur=qu.front();qu.pop();row.push_back(cur->val);if(cur->left) qu.push(cur->left);if(cur->right) qu.push(cur->right);}ans.push_back(row);}return ans;}
};

C语言

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/
int** decorateRecord(struct TreeNode* root, int* returnSize,int** returnColumnSizes) 
{if (root == NULL) {*returnSize = 0;return root;}struct TreeNode* qu[1100];struct TreeNode* cur;int front = 0, rear = 0, row = 0, col = 0, next_row_count = 0, cur_row_count = 1;int** ans = (int**)malloc(sizeof(int*) * 1100);*returnColumnSizes = (int*)malloc(sizeof(int) * 1100);qu[rear++] = root;  //入队ans[row] = (int*)malloc(sizeof(int) * cur_row_count);(*returnColumnSizes)[row] = cur_row_count;while (front < rear) {cur = qu[front++];  //出队ans[row][col++] = cur->val;if (cur->left) {qu[rear++] = cur->left;next_row_count++;}if (cur->right) {qu[rear++] = cur->right;next_row_count++;}cur_row_count--;if (cur_row_count == 0) {cur_row_count = next_row_count;next_row_count = 0;col = 0;row++;ans[row] = (int*)malloc(sizeof(int) * cur_row_count);(*returnColumnSizes)[row] = cur_row_count;}}*returnSize = row;return ans;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中英双语介绍超跑:Ferrari,Lamborghini,Porsche,Bentley,McLaren

中文版 法拉利&#xff08;Ferrari&#xff09; 历史 法拉利成立于1939年&#xff0c;由恩佐法拉利&#xff08;Enzo Ferrari&#xff09;创立&#xff0c;总部位于意大利马拉内罗。法拉利以其豪华跑车和赛车而闻名&#xff0c;特别是在一级方程式赛车&#xff08;F1&#x…

2024年7月8日-7月14日(ue5肉鸽视频p34-p44)

试过重点放在独立游戏上&#xff0c;有个indienova独立游戏团队是全职的&#xff0c;由于他们干了几个月&#xff0c;节奏暂时跟不上&#xff0c;紧张焦虑了。五一时也有点自暴自弃了&#xff0c;实在没必要&#xff0c;按照自己的节奏走即可。精力和时间也有限&#xff0c;放在…

个人视角,社会影响力:自媒体的魅力所在

随着数字化时代的到来&#xff0c;自媒体正成为信息传播领域的一场革命。个人视角与社会影响力的结合&#xff0c;赋予了自媒体独特的魅力。在传统媒体受限制的同时&#xff0c;自媒体为每个人提供了表达自己观点和思想的自由。个体的真实视角使得自媒体在信息传播中发挥着重要…

14-40 剑和诗人14 - 为什么机器学习需要合成数据

​​​​​​ 数据是人工智能的命脉。如果没有高质量、有代表性的训练数据&#xff0c;我们的机器学习模型将毫无用处。但随着神经网络规模越来越大、人工智能项目越来越雄心勃勃&#xff0c;人们对数据的需求也越来越大&#xff0c;我们面临着一场危机——现实世界的数据收集和…

如何优化 PostgreSQL 中对于复杂数学计算的查询?

文章目录 一、理解复杂数学计算的特点二、优化原则&#xff08;一&#xff09;索引优化&#xff08;二&#xff09;查询重写&#xff08;三&#xff09;数据库配置调整&#xff08;四&#xff09;使用数据库内置函数的优势 三、具体的优化方案和示例&#xff08;一&#xff09;…

华为开源自研AI框架昇思MindSpore应用案例:FCN图像语义分割

Mask R-CNN MaskRCNN是一种概念简单、灵活、通用的目标实例分割框架&#xff0c;在检测出图像中目标的同时&#xff0c;还为每一个实例生成高质量掩码。这种称为Mask R-CNN的方法&#xff0c;通过添加与现有边框检测分支平行的预测目标掩码分支&#xff0c;达到扩展Faster R-CN…

LRU 缓存机制

题目 运用你所掌握的数据结构&#xff0c;设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&a…

leetcode判断二分图

判断二分图 图的问题肯定要用到深度优先遍历或者广度优先遍历&#xff0c;但又不是单纯的深度优先遍历算法和广度优先遍历算法&#xff0c;而是需要在遍历的过程中加入与解决题目相关的逻辑。 题干中说了&#xff0c;这个图可能不是连通图&#xff0c;这个提示有什么作用呢&a…

shared_ptr 线程安全

为什么 shared_ptr 可以安全地在多个线程中共享&#xff1f; 循环引用 因为shared_ptr std::shared_ptr 的引用计数是线程安全的。这意味着你可以在多个线程中安全地拷贝、赋值和销毁 std::shared_ptr。然而&#xff0c;访问或修改 shared_ptr 所指向的对象时&#xff0c;需要…

昇思25天学习打卡营第20天|LSTM+CRF序列标注

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) LSTMCRF序列标注 概述 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标…

明日周刊-第15期

赶在周末结束前输出一把&#xff0c;周日的晚上大家要睡个好觉哦。 文章目录 一周热点资源分享言论歌曲推荐 一周热点 科技创新与基础设施建设 深中通道正式通车试运营 时间&#xff1a;6月30日 内容&#xff1a;国家重大工程深中通道正式通车试运营&#xff0c;标志着珠江口东…

深入理解Java可执行JAR文件

目录 引言JAR文件简介创建JAR文件 使用JDK的jar工具使用IDE创建JAR文件 指定Main-Class属性 在MANIFEST.MF文件中指定使用jar工具指定 运行可执行JAR文件在Maven项目中创建可执行JAR文件 配置pom.xml使用maven-jar-plugin 在Gradle项目中创建可执行JAR文件 配置build.gradle使…

MySQL中in和exists的区别

in和exists都是在 SQL 中用于检查子查询中是否存在数据的谓词&#xff0c;它们的区别主要体现在语法、用途、效率、错误处理以及子查询范围等方面&#xff0c;具体区别如下&#xff1a; 语法&#xff1a; exists&#xff1a;exists (子查询)in&#xff1a;列 in (子查询) 或 子…

Java实现布隆过滤器的几种方式

布隆过滤器应用场景: 为预防大量黑客故意发起非法的时间查询请求,造成缓存击穿,建议采用布隆过滤器的方法解决。布隆过滤器通过一个很长的二进制向量和一系列随机映射函数(哈希函数)来记录与识别某个数据是否在一个集合中。如果数据不在集合中,能被识别出来,不需要到数…

吉时利KEITHLEY KI-488驱动和说明

吉时利KEITHLEY KI-488驱动和说明

[吃瓜教程]南瓜书第6章支持向量机

0.补充知识 0.1 超平面 定义&#xff1a; 超平面是指在&#x1d45b;维空间中&#xff0c;维度为 &#x1d45b;−1的子空间。它是分割空间的一个平面。 性质&#xff1a; n维空间的超平面 ( w T x b 0 , 其中 w , x ∈ R n ) (w^Tx_b0,其中w,x\in \mathbb R^n) (wTxb​0,其…

【大模型】大语言模型:光鲜背后的阴影——事实准确性和推理能力的挑战

大语言模型&#xff1a;光鲜背后的阴影——事实准确性和推理能力的挑战 引言一、概念界定二、事实准确性的局限2.1 训练数据的偏差2.2 知识的时效性问题2.3 复杂概念的理解与表述 三、推理能力的局限3.1 表层理解与深层逻辑的脱节3.2 缺乏常识推理3.3 无法进行长期记忆和连续推…

通过端口转发实现docker容器运行时端口更改

通过端口转发实现docker容器运行时端口更改 前言启动容器查看容器ip地址端口转发 前言 关于修改docker正在运行中容器端口&#xff0c;网上大部分分为3类: 1. 删除原有容器重新创建;2. 改配置文件;3. 在现有容器上新提交镜像&#xff0c;用新镜像起新的容器。 1和3属于同一种流…

Spring Boot与Apache Kafka Streams的集成

Spring Boot与Apache Kafka Streams的集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、Apache Kafka Streams简介 Apache Kafka Streams是一个用于构…

如何在Android中实现网络通信,如HttpURLConnection和HttpClient。

在Android开发中&#xff0c;网络通信是一个不可或缺的功能&#xff0c;它允许应用与服务器交换数据&#xff0c;实现丰富的功能。在实现网络通信时&#xff0c;HttpURLConnection和HttpClient是两种常用的方式。下面将从技术难点、面试官关注点、回答吸引力以及代码举例四个方…