| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Leetcode0427. 建立四叉树(medium递归) -> 正文阅读 |
|
[数据结构与算法]Leetcode0427. 建立四叉树(medium递归) |
目录 1. 问题描述给你一个? 注意,当? 四叉树数据结构中,每个内部节点只有四个子节点。此外,每个节点都有两个属性:
class Node { public boolean val; ? ? public boolean isLeaf; ? ? public Node topLeft; ? ? public Node topRight; ? ? public Node bottomLeft; ? ? public Node bottomRight; } 我们可以按以下步骤为二维区域构建四叉树:
如果你想了解更多关于四叉树的内容,可以参考?wiki?。 四叉树格式: 输出为使用层序遍历后四叉树的序列化形式,其中? 它与二叉树的序列化非常相似。唯一的区别是节点以列表形式表示? 如果? 示例 1: 输入:grid = [[0,1],[1,0]] 输出:[[0,1],[1,0],[1,1],[1,1],[1,0]] 解释:此示例的解释如下: 请注意,在下面四叉树的图示中,0 表示 false,1 表示 True 。 示例 2: 输入:grid = [[1,1,1,1,0,0,0,0],[1,1,1,1,0,0,0,0],[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1],[1,1,1,1,0,0,0,0],[1,1,1,1,0,0,0,0],[1,1,1,1,0,0,0,0],[1,1,1,1,0,0,0,0]] 输出:[[0,1],[1,1],[0,1],[1,1],[1,0],null,null,null,null,[1,0],[1,0],[1,1],[1,1]] 解释:网格中的所有值都不相同。我们将网格划分为四个子网格。 topLeft,bottomLeft 和 bottomRight 均具有相同的值。 topRight 具有不同的值,因此我们将其再分为 4 个子网格,这样每个子网格都具有相同的值。 解释如下图所示: 示例 3: 输入:grid = [[1,1],[1,1]] 输出:[[1,1]] 示例 4: 输入:grid = [[0]] 输出:[[1,0]] 示例 5: 输入:grid = [[1,1,0,0],[1,1,0,0],[0,0,1,1],[0,0,1,1]] 输出:[[0,1],[1,1],[1,0],[1,0],[1,1]] 提示:
2. 思路与算法? ? ? ? 以递归的方式来实现。 ????????n=2^x表示整个区分要么只有一个格点,要么可以四等分。 ? ? ? ? 记f(k)表示覆盖当前区域的节点。 ? ? ? ? baseline case:当k=1,则该节点一定为叶子节点,表示为[1, grid[0][0]] ? ? ? ? 如果它的4个子区域都是叶子节点,且各叶子节点的值都相等且为val,则该节点本身也是叶子节点,表示为[1,val];否则的话,它就不是叶子节点, 表示为[0,0],或[0,1]均可。? ? ? ?? ? ? ? ? 这道题目估计主要的难度是读懂问题描述^-^. 3. 代码实现
????????执行用时:240 ms, 在所有?Python3?提交中击败了26.28%的用户 ????????内存消耗:15.8 MB, 在所有?Python3?提交中击败了51.09%的用户 ? ? ? ? 优化方法:递归 + 二维前缀和优化 (略) ? ? ? ? 回到总目录:笨牛慢耕的Leetcode每日一题总目录(动态更新。。。) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:25:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |