leetcode427.建立四叉樹

?區間x0到x1和區間y0到y1都是左閉右開的
解題基本思路是先判斷當前矩陣是不是全0或全1,如果是就直接返回新建的一個節點值(矩陣的統一值,葉子節點),如果不是那就新建一個節點值,非葉并且左上右上左下右下四個方向上遞歸創建節點

/*
// Definition for a QuadTree node.
class Node {public boolean val;public boolean isLeaf;public Node topLeft;public Node topRight;public Node bottomLeft;public Node bottomRight;public Node() {this.val = false;this.isLeaf = false;this.topLeft = null;this.topRight = null;this.bottomLeft = null;this.bottomRight = null;}public Node(boolean val, boolean isLeaf) {this.val = val;this.isLeaf = isLeaf;this.topLeft = null;this.topRight = null;this.bottomLeft = null;this.bottomRight = null;}public Node(boolean val, boolean isLeaf, Node topLeft, Node topRight, Node bottomLeft, Node bottomRight) {this.val = val;this.isLeaf = isLeaf;this.topLeft = topLeft;this.topRight = topRight;this.bottomLeft = bottomLeft;this.bottomRight = bottomRight;}
}
*/class Solution {private Node construct(int[][] grid, int x0, int y0, int x1, int y1) {for (int i = x0; i < x1; i++)for (int j = y0; j < y1; j++)if (grid[i][j] != grid[x0][y0])return new Node(true, false,construct(grid, x0, y0, (x0 + x1) / 2, (y0 + y1) / 2),construct(grid, x0, (y0 + y1) / 2, (x0 + x1) / 2, y1),construct(grid, (x0 + x1) / 2, y0, x1, (y0 + y1) / 2),construct(grid, (x0 + x1) / 2, (y0 + y1) / 2, x1, y1));return new Node(grid[x0][y0] == 1, true);}public Node construct(int[][] grid) {return construct(grid, 0, 0, grid.length, grid.length);}
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912828.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

醫學+AI教育實踐!南醫大探索數據挖掘人才培養,清華指導發布AI教育白皮書

教育數字化浪潮正以前所未有的力度重塑高等教育格局。今年4月&#xff0c;為貫徹落實《教育強國建設規劃綱要&#xff08;2024—2035 年&#xff09;》&#xff0c;教育部等九部門印發《關于加快推進教育數字化的意見》&#xff0c;表明將持續推動“人工智能教育”全方位發展&a…

PDF處理控件Spire.PDF系列教程:如何使用C# 拆分 PDF 文件(完整指南)

PDF文件因其高度的跨平臺兼容性和安全穩定的格式特點&#xff0c;廣泛應用于企業文檔管理和電子資料傳輸中。隨著PDF文檔頁數和內容復雜度的增加&#xff0c;拆分PDF成為優化文檔處理流程、提升辦公效率的重要需求。通過編程方式實現PDF拆分&#xff0c;不僅能自動化處理海量文…

文心4.5開源模型部署實踐

文心4.5開源模型部署實踐 使用fastdeploy本地部署 執行命令&#xff1a; python -m fastdeploy.entrypoints.openai.api_server \--model baidu/ERNIE-4.5-21B-A3B-Paddle \--port 8180 \--metrics-port 8181 \--engine-worker-queue-port 8182 \--max-model-len 32768 \--m…

Python迭代器、生成器、閉包和裝飾器(三器一包)

return、continue、break區別&#xff1a; return只能用在函數里面&#xff0c;表示從函數中返回&#xff0c;函數體內的后續任何代碼都不執行continue只是跳出當前循環&#xff0c;進入下一循環break只是跳出全部循環&#xff0c;如果循環后面還有代碼&#xff0c;會進行執行…

【Java】Maven

一.Maven簡介 Maven的產生主要是為了解決Java項目中的兩個問題&#xff1a; 1.依賴管理&#xff1a; 傳統 Java 項目在引入第三方庫時&#xff0c;需要手動下載 JAR 包并維護復雜的依賴關系。Maven 提供了統一的依賴管理機制&#xff0c;通過簡單的配置即可自動從倉庫下載并引…

人臉活體識別3:C/C++實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測)

人臉活體識別3&#xff1a;C/C實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 目錄 人臉活體識別3&#xff1a;C/C實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 1. 前言 2.人臉活體識別方法 &#xff08;1&#xff09;基于人臉動作的檢測?? &#xff08;2&#xff09;?…

【ABAP】 從無到有 新建一個Webdynpro程序

、新建WDA 可從SE80在web dynpro 組件下 創建 并按例以下操作 2、插入窗口 3、相關功能 3-1、展示消息 DATA:lo_api_controller TYPE REF TO if_wd_controller,lo_message_handler TYPE REF TO if_wd_message_manager.lo_api_controller ? wd_this->wd_get_api( ).lo_mess…

ALV常用設置(更新中一)

之前設置了checkbox&#xff0c;但是觸發不了單擊事件&#xff0c;且alv自帶的復選&#xff0c;鼠標移動單擊別處就會自動取消。 **增加多選框到fieldcat&#xff0c;**這一點很重要&#xff0c;然后設置 IF gs_fcat-fieldname sel.gs_fcat-checkbox X. gs_fcat-edit X. …

NumPy 或 PyTorch/TensorFlow 中的張量理解

(2, 2, 3) 形狀的 3D 數組&#xff08;或張量&#xff09;的結構。 個人理解&#xff1a; 2個2維數組&#xff08;張量&#xff09;&#xff0c;2維數組&#xff08;張量&#xff09;里面有2個1維向量&#xff08;張量&#xff09;&#xff0c;1維向量&#xff08;張量&#x…

Linux環境下使用 C++ 與 OpenCV 實現 ONNX 分類模型推理

實驗環境&#xff1a;Ubuntu 20.0 推理模型&#xff1a;ONNX分類模型 1. 安裝依賴項 首先是需要安裝依賴庫&#xff0c;如g&#xff0c;cmake等&#xff0c;如果已經安裝的話可以忽略 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt i…

AJAX 安裝使用教程

一、AJAX 簡介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一種在無需重新加載整個網頁的情況下&#xff0c;能夠與服務器交換數據并更新部分網頁內容的技術。它不是一種新語言&#xff0c;而是使用現有的標準組合&#xff1a;JavaScript XMLHttpRequest…

【牛客算法】牛客網編程題解:小紅拼圖

一、題目介紹 1.1. 題目鏈接 &#xff1a;小紅拼圖 https://www.nowcoder.com/questionTerminal/08b54686f0d14bd784d9d148c68a268a 1.2 題目介紹 小紅正在玩一個拼圖游戲&#xff0c;她有一些完全相同的拼圖組件&#xff1a; 小紅準備用這些組件來拼成一些圖案。這些組件可…

買賣股票的最佳時機--js 算法

一、買賣股票的最佳時機 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。返回你可以從這筆交易中獲取的最大利潤。…

C#基礎(WndProc)

WndProc 是操作系統與你的程序“對話”的通道??。當用戶點擊鼠標、按下鍵盤&#xff0c;或系統事件&#xff08;如窗口移動&#xff09;發生時&#xff0c;Windows 會將這些事件打包成“消息”&#xff0c;發送給你的窗口&#xff0c;而 WndProc 就是接收和處理這些消息的函數…

記錄一個 Linux中腳本無法執行的問題

問題描述&#xff1a; 在本地的window系統傳的云服務器上一個.sh結尾的安裝Java環境的腳本 上傳到云服務器后&#xff0c;使用命令賦予執行權限 chmod x 文件名然后看一下這個腳本變綠了就可以了 然后開始嘗試執行 ./腳本名 然后就報錯了 然后開始排查問題 1.檢查并修復 She…

Iceberg在圖靈落地應用

導讀 百度MEG上一代大數據產品存在平臺分散、易用性差等問題&#xff0c;導致開發效率低下、學習成本高&#xff0c;業務需求響應遲緩。為了解決這些問題&#xff0c;百度MEG內部開發了圖靈3.0生態系統&#xff0c;包括Turing Data Engine(TDE)計算&存儲引擎、Turing Data…

FPGA設計的用戶約束

FPGA設計的用戶約束 文章目錄 FPGA設計的用戶約束FPGA設計的用戶約束綜合約束管腳約束位置約束時序約束小總結 FPGA設計的用戶約束 至此&#xff0c;HDL到門級網表的轉化已經完成&#xff0c;對于編譯器來說&#xff0c;下一步的任務就是要將門級網表轉換并映射到具體的FPGA硬…

Spring 生態創新應用:微服務架構設計與前沿技術融合實踐

在數字化轉型的深水區&#xff0c;企業級應用正面臨從 “單體架構” 向 “分布式智能架構” 的根本性躍遷。Spring 生態以其二十年技術沉淀形成的生態壁壘&#xff0c;已成為支撐這場變革的核心基礎設施。從 2002 年 Rod Johnson 發布《Expert One-on-One J2EE Design and Deve…

車牌識別與標注:基于百度OCR與OpenCV的實現(一)

車牌識別與標注&#xff1a;基于百度OCR與OpenCV的實現 在計算機視覺領域&#xff0c;車牌識別是一項極具實用價值的技術&#xff0c;廣泛應用于交通監控、智能停車場管理等領域。本文將介紹如何在macOS系統下&#xff0c;利用百度OCR API進行車牌識別&#xff0c;并結合OpenC…

【系統分析師】2021年真題:論文及解題思路

文章目錄 試題一&#xff1a;論面向對象的信息系統分析方法試題二&#xff1a;論靜態測試方法及其應用試題三&#xff1a;論富互聯網應用的客戶端開發技術試題四&#xff1a;論DevSecOps技術及其應用 試題一&#xff1a;論面向對象的信息系統分析方法 信息系統分析是信息系統生…