2025年- H57-Lc165--994.腐爛的橘子(圖論,廣搜)--Java版

1.題目描述

在這里插入圖片描述

2.思路

在這里插入圖片描述

3.代碼實現

import java.util.LinkedList;
import java.util.Queue;public class H994 {public int orangesRotting(int[][] grid) {//1.獲取行數int rows=grid.length;int cols=grid[0].length;//2.創建隊列用于bfsQueue<int[]> que=new LinkedList<>();//3.記錄新鮮橘子的數量int fresh=0;//4.遍歷整個網絡,初始化隊列for(int i=0;i<rows;i++){for(int j=0;j<cols;j++){//如果是腐爛的橘子,加入隊列中作為bfs的起點if(grid[i][j]==2){//把腐爛橘子當前坐標加入到隊列中que.offer(new int[]{i,j});}//如果是新鮮橘子,統計數量if(grid[i][j]==1){fresh++;}}}//如果沒有新鮮的橘子,直接返回0分鐘if(fresh==0) return 0;//定義方向數組,用于上下左右int[][] dirs={{1,0},{0,1},{0,-1},{-1,0}};int minutes=0;//記錄分鐘數//bfs開始,因為que存儲了腐爛的橘子的坐標while(!que.isEmpty()){int size=que.size();//這一分鐘是否有橘子感染boolean rotted=false;for(int i=0;i<size;i++){int[] pos=que.poll();//刪除隊首元素,并返回隊首元素的值int x=pos[0];int y=pos[1];//遍歷腐爛橘子的四個方向//dirs是二維數組,也就是一維數組dir[]的一維數組for(int[] dir:dirs){int nextx=x+dir[0];int nexty=y+dir[1];//如果在網格內且是新鮮橘子,將它變成腐爛橘子,并把新鮮橘子數-1if(nextx>=0&&nextx<rows&&nexty>=0&&nexty<cols&&grid[nextx][nexty]==1){//變成腐爛橘子grid[nextx][nexty]=2;//新鮮橘子數量減少fresh--;//加入下一輪處理que.offer(new int[]{nextx,nexty});rotted=true;//防止腐爛的橘子重復計數}}}if(rotted==true){minutes++;}}if(fresh==0){return minutes;}else {return -1;}}public static void main(String[] args){int[][] grid={{2,1,1},{1,1,0},{0,1,1}};H994 test=new H994();int result=test.orangesRotting(grid);System.out.print(result);}}

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

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

相關文章

005 flutter基礎,初始文件講解(4)

書接上回&#xff0c;今天繼續完成最后的講解&#xff1a; class _MyHomePageState extends State<MyHomePage> {int _counter 0;void _incrementCounter() {setState(() {_counter;});}可以看到&#xff0c;這里的_MyHomePageState是一個類&#xff0c;繼承于 State&l…

DeepSeek R1開源模型的技術突破與AI產業格局的重構

引言? 2025年&#xff0c;中國AI企業深度求索&#xff08;DeepSeek&#xff09;推出的開源模型DeepSeek-R1&#xff0c;以低成本、高性能和開放生態為核心特征&#xff0c;成為全球人工智能領域的技術焦點。這一模型不僅通過算法創新顯著降低算力依賴&#xff0c;更通過開源策…

輕量級swiper插件推薦

推薦插件列表&#xff08;按體積從小到大排序&#xff09; 1. Embla Carousel 體積&#xff1a;約 5KB (gzipped) 官網&#xff1a;A lightweight carousel library with fluid motion and great swipe precision | Embla Carousel 特點&#xff1a; 極小體積&#xff0c;高…

設計模式——訪問者設計模式(行為型)

摘要 訪問者設計模式是一種行為型設計模式&#xff0c;它將數據結構與作用于結構上的操作解耦&#xff0c;允許在不修改數據結構的前提下增加新的操作行為。該模式包含關鍵角色如元素接口、具體元素類、訪問者接口和具體訪問者類。通過訪問者模式&#xff0c;可以在不改變對象…

Vue基礎(12)_Vue.js循環語句用法:列表渲染

js補充 術語解釋 循環(loop)&#xff1a;最基礎的概念, 所有重復的行為。 遞歸(recursion)&#xff1a; 在函數內調用自身, 將復雜情況逐步轉化成基本情況。 (數學)迭代(iterate) &#xff1a;在多次循環中逐步接近結果。 (編程)迭代(iterate) &#xff1a;按順序訪問線性結構中…

Linux入門(十三)動態監控系統監控網絡狀態

top與ps 命令很相似&#xff0c;它們都是用來顯示正在執行的進程&#xff0c;top與ps大的區別是top在執行一段時間可以更新正在運行的進程。 #-d 更新秒數 如果不寫-d 那默認是3秒更新 # -i 隱藏不活躍進程 top -d 5交互操作 P 按cpu使用大小排序&#xff0c;默認此項 M 按內存…

Java 中 MySQL 索引深度解析:面試核心知識點與實戰

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄 Java 中 MySQL 索引深度解析&#xff1a;面試…

Kafka集成Flume/Spark/Flink(大數據)/SpringBoot

Kafka集成Flume Flume生產者 ③、安裝Flume&#xff0c;上傳apache-flume的壓縮包.tar.gz到Linux系統的software&#xff0c;并解壓到/opt/module目錄下&#xff0c;并修改其名稱為flume Flume消費者 Kafka集成Spark 生產者 object SparkKafkaProducer{def main(args:Array[S…

debian12.9或ubuntu,vagrant離線安裝插件vagrant-libvirt,20250601

系統盤: https://mirror.lzu.edu.cn/debian-cd/12.9.0/amd64/iso-dvd/debian-12.9.0-amd64-DVD-1.iso 需要的依賴包,無需安裝ruby( sudo apt install -y ruby-full ruby-dev rubygems,后來發現不安裝會有編譯警告,還是安裝吧 ) ,無需安裝 zlib1g-dev liblzma-dev libxml2-de…

2025年軟件測試面試八股文(含答案+文檔)

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師…

[CSS3]響應式布局

導讀 響應式就是一套代碼, 兼容大中小不同的屏幕, 即網頁內容不變, 網頁布局隨屏幕切換而改變 媒體查詢 響應式布局的核心技術是媒體查詢 媒體查詢可以檢測屏幕尺寸, 設置差異化的css 開發中的常用寫法 使用范圍屬性, 劃定屏幕范圍 max-width 最大寬度min-width 最小寬度 …

在 Windows安裝 make 的幾種方式

在 Windows 上使用 make&#xff08;通常用于自動化構建 C/C 項目等&#xff09;有幾種方法。以下是最常見的幾種安裝和使用方法&#xff1a; 文章目錄 ? 方法一&#xff1a;使用 Chocolatey 安裝 GNU Make&#xff08;推薦&#xff09;? 方法二&#xff1a;使用 WSL&#xf…

深度學習筆記25-RNN心臟病預測(Pytorch)

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 一、前期準備 1.數據處理 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn dfpd.read_csv(r&…

Pytorch知識點2

Pytorch知識點 1、官方教程2、張量&#x1f9f1; 0、數組概念&#x1f9f1; 1. 創建張量&#x1f4d0; 2. 張量形狀與維度&#x1f522; 3. 張量數據類型? 4. 張量的數學與邏輯操作&#x1f504; 5. 張量的就地操作&#x1f4e6; 6. 復制張量&#x1f680; 7. 將張量移動到加速…

池中錦鯉的自我修養,聊聊蓄水池算法

面試如泡池&#xff0c;蓄水似人生 起初你滿懷期待跳進大廠池子&#xff0c;以為自己是天選之子&#xff0c;結果發現池子里早擠滿了和你一樣的“錦鯉候選人”。HR的漁網一撒&#xff0c;撈誰全看概率——這不就是蓄水池算法的精髓嗎&#xff1f; 初入池&#xff08;i≤k&…

Linux應用開發之網絡套接字編程

套接字&#xff08;Socket&#xff09;是計算機網絡數據通信的基本概念和編程接口&#xff0c;允許不同主機上的進程&#xff08;運行中的程序&#xff09;通過網絡進行數據交換。它為應用層軟件提供了發送和接收數據的能力&#xff0c;使得開發者可以在不用深入了解底層網絡細…

小白的進階之路系列之六----人工智能從初步到精通pytorch數據集與數據加載器

本文將介紹以下內容: 數據集與數據加載器 數據遷移 如何建立神經網絡 數據集與數據加載器 處理數據樣本的代碼可能會變得混亂且難以維護;理想情況下,我們希望我們的數據集代碼與模型訓練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供了兩個數據原語:torch.utils…

深入理解設計模式之中介者模式

深入理解設計模式之&#xff1a;中介者模式&#xff08;Mediator Pattern&#xff09; 一、什么是中介者模式&#xff1f; 中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為型設計模式。它通過引入一個中介對象&#xff0c;來封裝一組對象之間的交互&#xff0…

基于通義千問的兒童陪伴學習和成長的智能應用架構。

1.整體架構概覽 我們的兒童聊天助手將采用典型的語音交互系統架構,結合大模型能力和外部知識庫: 2. 技術方案分解 2.1. 前端應用/設備 選擇: 移動App(iOS/Android)、Web應用,或者集成到智能音箱/平板等硬件設備中。技術棧: 移動App: React Native / Flutter (跨平臺…

Python Day40

Task&#xff1a; 1.彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中 2.展平操作&#xff1a;除第一個維度batchsize外全部展平 3.dropout操作&#xff1a;訓練階段隨機丟棄神經元&#xff0c;測試階段eval模式關閉dropout 作業&#xff1a;仔細學習下測試和訓練代…