【力扣】LCR 130. 衣櫥整理

一、題目描述

二、算法思路

這是?道非常典型的「搜索」類問題。
我們可以通過「深搜」或者「寬搜」,從 [0, 0] 點出發,按照題目的要求(選擇? 向右移動一格?或? 向下移動一格,但不能移動到衣柜之外 一直往 [m - 1, n - 1] 位置走。
同時,設置?個全局變量。每次走到?個合法位置,就將全局變量加一。當我們把所有能走到的路都走 完之后,全局變量里面存的就是最終答案。

三、解法

?在這里我們使用的是floodfill算法。

題目要求是選擇?向右移動一格?或?向下移動一格,但不能移動到衣柜之外。對此,我們可以創建dx,dy兩個移動數組,dx中的值表示當前行要加的數,dy中的值表示當前列要加的數。

令dx = {0,1}; dy = {1,0},必須保證dx數組中的0對應dy數組中的1,dy數組中的1對應dy數組中的0。這樣才能實現向右移動和向下移動。

我們舉例來說明一下:

假設當前處于二維數組中下標為[1,2]的位置,

我們向右移動,則到達[1,3]。向右移動時,行不變,只需列+1;

向下移動,則到達[2,2]。向下移動時,列不變,只需行+1;

?我們還要創建一個布爾類型的標記數組vis,將遍歷過的位置標記一下,避免重復遍歷。

遞歸函數:對于本題,我們的遞歸函數dfs,參數只需當前下標位置(int i ,int j)。

解決該題,我們還需要一個驗證數位之和是否滿足題目要求的函數

四、解題代碼

class Solution {int m, n;int[] dx = {0,1};int[] dy = {1,0};boolean[][] vis;int cnt;int ret;  //統計結果public int wardrobeFinishing(int _m, int _n, int _cnt) {m = _m;n = _n;cnt = _cnt;vis = new boolean[m][n];dfs(0,0); return ret;}public void dfs(int i, int j) {ret++;vis[i][j] = true;//遍歷dx,dy,相當于遍歷向右、向下的位置for(int k = 0; k < 2; k++) {int x = i + dx[k];int y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && !vis[x][y] && check(x,y)) {dfs(x,y);}}}public boolean check(int i, int j) {int tmp = 0;while(i != 0) {tmp += i % 10;i /= 10;}while(j != 0) {tmp += j % 10;j /= 10;}return tmp <= cnt;}
}

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

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

相關文章

詳解Spring IoCDI(二)

目錄 承接上文&#xff1a;詳解Spring IoC&DI &#xff08;一&#xff09; 1.IoC詳解 1.1方法注解Bean 1.2方法注解要配合類注解使用 1.3定義多個對象 1.4重命名Bean 1.5掃描路徑 2.DI詳解 2.1DI與IoC的關系 2.2屬性注入 2.3構造方法注入 2.4Setter注入 2.5 三…

代碼隨想錄算法訓練營第四十五天|1049.最后一塊石頭的重量II、494.目標和、 474.一和零

1049.最后一塊石頭的重量II 文檔講解&#xff1a;代碼隨想錄 題目鏈接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 本題其實就是盡量讓石頭分成重量相同的兩堆&#xff0c;相撞之后剩下的石頭最小&#xff0c;這樣就化解成01背包問題了。 和昨天講解的416. 分割等和…

visual studio code 全局搜索

VScode寫代碼的時候&#xff0c;會經常性的需要進行查找代碼&#xff0c;那么怎么在Visual Studio Code中進行查找呢&#xff0c;下面就來大家vscode全局搜索的方法。 想要在vscode全局搜索進行全局搜索&#xff0c;使用快捷鍵CTRLSHIFTF即可進行搜索&#xff0c;也可以在左邊…

哪吒監控+cfcdn+ 反代grp端口

哪吒監控cfcdn 反代grp端口 背景&#xff1a; 哪吒監控&#xff1a;感覺VPS線路不穩定&#xff0c;為了打消自己潛意識&#xff0c;希望量化延遲。 cfcdn&#xff1a;隱藏真實站點&#xff0c;保障小雞隱秘安全 反代grpc端口: 反代grpc到支持https(TLS)的端口&#xff0c;這…

Tomcat啟動閃退問題及解決方法

Tomcat啟動閃退問題可能由多種原因引起&#xff0c;以下是一些常見的原因及相應的解決方法&#xff0c;按照清晰的結構進行歸納&#xff1a; 一、環境變量問題 Java環境問題&#xff1a;Tomcat依賴于Java環境&#xff0c;如果JDK未正確安裝或環境變量配置不正確&#xff0c;會…

Elasticsearch 認證模擬題 - 3

1、題目 有一索引有 3 個字段&#xff0c;請寫一個查詢去匹配這三個字段&#xff0c;并且將三個字段的評分相加作為最后的總評分 # 創建索引 PUT task {"mappings": {"properties": {"fielda":{"type": "text"},"fie…

TrueNAS開啟SSH登錄ROOT

簡介: 從 SCALE Bluefin 22.12.0 開始,為了加強安全性并遵守聯邦信息處理標準 (FIPS),root帳戶登錄已被棄用。所有 TrueNAS 用戶都應創建具有所有必需權限的本地管理員帳戶,并開始使用它來訪問 TrueNAS。當根用戶密碼被禁用時,只有管理用戶帳戶才能登錄 TrueNAS Web 界面。…

從零學算法2965

2965. 找出缺失和重復的數字 給你一個下標從 0 開始的二維整數矩陣 grid&#xff0c;大小為 n * n &#xff0c;其中的值在 [1, n2] 范圍內。除了 a 出現 兩次&#xff0c;b 缺失 之外&#xff0c;每個整數都 恰好出現一次 。 任務是找出重復的數字a 和缺失的數字 b 。 返回一個…

輪狀病毒簡介-卡梅德生物

輪狀病毒是一種非常常見的病毒&#xff0c;主要影響嬰幼兒和小孩&#xff0c;引起嚴重的胃腸炎&#xff0c;表現為嚴重腹瀉、嘔吐、發燒和脫水。這種病毒全球流行&#xff0c;是全世界五歲以下兒童因腹瀉導致死亡的主要原因之一。輪狀病毒屬于Reoviridae家族&#xff0c;具有雙…

邏輯回歸【python,機器學習,算法】

邏輯回歸是一種有監督的學習分類算法&#xff0c;用于預測目標變量的概率。目標或因變量的性質是二分法的&#xff0c;這意味著將只有兩個可能的類。主要解決二分類問題。 主要步驟有三個&#xff1a; 求線性回歸曲線。通過 sigmoid 函數將線性回歸曲線轉為 0-1 范圍函數。 …

機器學習-11-使用kaggle命令下載數據集和操作指南

參考kaggle API 命令下載數據集 參考Kaggle操作完整指南(2023版) 參考Kaggle如何入門? 1 kaggle操作指南 Kaggle 是一個流行的數據科學競賽平臺。由 Goldbloom 和 Ben Hamner 創建于 2010 年。為什么這兩個家伙要創立這樣一個平臺呢? 數據科學社區一直有這樣一個難題:對…

低代碼開發平臺(Low-code Development Platform)的模塊組成部分

低代碼開發平臺&#xff08;Low-code Development Platform&#xff09;的模塊組成部分主要包括以下幾個方面&#xff1a; 低代碼開發平臺的模塊組成部分可以按照包含系統、模塊、菜單組織操作行為等維度進行詳細闡述。以下是從這些方面對平臺模塊組成部分的說明&#xff1a; …

docker安裝mysql8和mysql5.7

1.docker安裝mysql5.7,請點擊此鏈接 2.docker安裝mysql8并掛載數據卷 docker pull mysql:8.0 docker run --name mysql8 -e MYSQL_ROOT_PASSWORDmy-secret-pw -d mysql:8.0 docker run --name mysql8 -e MYSQL_ROOT_PASSWORD123456 -v /mqq/mysql8/datadir:/var/lib/mysql -d…

虛擬dom的理解

由普通的js對象來描述dom對象&#xff0c;是對于真實dom的映射&#xff0c;因為不是真實的dom對象所以叫虛擬dom。因為js處理數據的速度比操作dom的速度更快&#xff0c;性能更好&#xff0c;所以讓現代這些react vue 等框架都采用了虛擬dom。 key值是唯一性的,在虛擬dom樹進行…

【喜報】科大睿智服務企業通過CMMI3級認證

?北京建投科信科技發展股份有限公司&#xff08;以下簡稱“北京建投科技” &#xff09;前身為北京銀帝科技發展公司&#xff0c;成立于1993年&#xff0c;注冊資本6,000萬元&#xff0c;為中國建銀投資有限責任公司&#xff08;簡稱“中國建投”&#xff09;的成員企業建投華…

現在,所有人都能免費用GPT-4o了!

OpenAI今日官宣&#xff0c;ChatGPT正式向所有用戶免費開放&#xff01;所有用戶均可以訪問定制化GPT、分析圖表、詢問有關照片的問題以及5月初GPT-4o添加的其他功能。 OpenAI今天在X上發布推文&#xff1a; 「所有ChatGPT免費用戶現在都可以使用瀏覽、視覺、數據分析、文件上…

element table表格行列合并span-method,根據數據動態行列合并

表格行列合并需要用到 table的方法 span-method 根據數據來進行動態的行列合并&#xff0c;實例如下&#xff1a; <el-table:data"tableData":span-method"objectSpanMethod" style"width: 100%"><el-table-columnprop"key"l…

mac電腦生成文件下載URL

1.首先打開web共享&#xff0c;終端方式。 開始 sudo apachectl start 停止&#xff1a; sudo apachectl stop 重啟&#xff1a; sudo apachectl restart 2.將需要下載的文件 app.v1.6.12_note.apk /Library/WebServer/Documents/ 目錄下 3. 同一網絡下&#xff0c;直接用…

C++系列——————類和對象(上)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、面向對象的三大特征二、類的引入2.1類的定義 三.類的訪問限定符3.1訪問限定符的介紹3.2.訪問限定符的使用 四、類的作用域五、類的實例化六、類對象模型6.1…

JavaScript的內存管理機制

No.內容鏈接1Openlayers 【入門教程】 - 【源代碼示例300】 2Leaflet 【入門教程】 - 【源代碼圖文示例 150】 3Cesium 【入門教程】 - 【源代碼圖文示例200】 4MapboxGL【入門教程】 - 【源代碼圖文示例150】 5前端就業寶典 【面試題詳細答案 1000】 文章目錄 一、內存…