LeetCode100-73矩陣置零

本文基于各個大佬的文章

上點關注下點贊,明天一定更燦爛!


前言

????????Python基礎好像會了又好像沒會,所有我直接開始刷leetcode一邊抄樣例代碼一邊學習吧。本系列文章用來記錄學習中的思考,寫給自己看的,也歡迎大家在評論區指導~

????????您的每一條評論都會讓我更有學習的動力。


一、分析題目

二、思路以及代碼

不要啊,矩陣問題,這個我真的一點都找不到規律,雖然級別是中等,在我這邊算難上加難。

我有個想法是這樣的:因為是把同行同列置零,所有置零后相當于縮小了一個單位矩陣,每次看當前矩陣的第一行第一列有沒有0,有的話就置零,縮小矩陣,沒有的話看第二行第二列。不行不行我腦子又亂了,看題解吧,遇到困難就要放棄。73. 矩陣置零 - 力扣(LeetCode)

博主第一個用的算是打暴力了哈哈,喜歡喜歡

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row = len(matrix)col = len(matrix[0])row_zero = set()col_zero = set()for i in range(row):for j in range(col):if matrix[i][j] == 0:row_zero.add(i)col_zero.add(j)for i in range(row):for j in range(col):if i in row_zero or j in col_zero:matrix[i][j] = 0

第二個好像思路跟我開始的有點一樣,利用矩陣本身的第一行和第一列作為“標記”或者“輔助存儲空間”,來記錄哪些行和哪些列需要被置為零。

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row = len(matrix)col = len(matrix[0])row0_flag = Falsecol0_flag = False# 找第一行是否有0for j in range(col):if matrix[0][j] == 0:row0_flag = Truebreak# 第一列是否有0for i in range(row):if matrix[i][0] == 0:col0_flag = Truebreak# 把第一行或者第一列作為 標志位for i in range(1, row):for j in range(1, col):if matrix[i][j] == 0:matrix[i][0] = matrix[0][j] = 0#print(matrix)# 置0for i in range(1, row):for j in range(1, col):if matrix[i][0] == 0 or matrix[0][j] == 0:matrix[i][j] = 0if row0_flag:for j in range(col):matrix[0][j] = 0if col0_flag:for i in range(row):matrix[i][0] = 0

三、本題收獲

我還是更適合打暴力,y1s1


總結

? ? ? ? 只會打暴力,基礎一團糟,明天再學吧老鐵,別真學會了。

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

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

相關文章

寧波市第八屆網絡安全大賽 -- Crypto -- WriteUp

寧波市第八屆網絡安全大賽 – Crypto – WriteUp Three-prime RSA task import gmpy2 from Crypto.Util.number import *from secret import flagp getPrime(512) q getPrime(512) r getPrime(512) n p * q * r random_num getPrime(28) D ((p q r) * random_num) % n …

大語言模型 (LLM) 與多模態大模型 (MLM)

文章目錄概述:從“模型”到“大”模型1、大語言模型 (Large Language Model, LLM)1.1 定義與概述關鍵特征:1.2 核心技術與架構Transformer架構自注意力機制 (Self-Attention)1.3 訓練過程1.4 工作原理2. 多模態大模型 (Multimodal Large Model, MLM)2.1 …

HTML應用指南:利用GET請求獲取全國招商銀行網點位置信息

招商銀行(China Merchants Bank, CMB)作為中國領先的股份制商業銀行,始終堅持“以客戶為中心”的服務理念,致力于為個人客戶、企業客戶及機構客戶提供專業、高效、便捷的綜合金融服務。依托“輕型銀行”戰略與“金融科技銀行”建設…

JVM性能監控工具的使用

了解JVM性能監控工具并能熟練使用,是Java開發者進階的必備技能。下面本文將為你介紹一些主流的JVM性能監控工具及其使用方法,并通過一些場景案例來分析如何應用這些工具解決實際問題。 🛠? JVM性能監控與調優工具指南 ? 工具概覽 以下是幾款…

【工作】一些找工作需要了解避雷的知識

面試前 1.公司的具體情況 公司全稱,辦公地點,涉及崗位 要求hr做個簡單的公司介紹 2.崗位職責/業務方向 工作內容、公司業務 3.薪資待遇,構成,底薪,五險一金 問一下工資范圍 底薪 (有責,無…

五、練習2:Git分支操作

練習2:Git分支操作 練習目標 掌握Git分支的創建、切換、合并等操作,理解分支在開發中的作用。 練習步驟 步驟1:準備基礎倉庫 # 創建練習目錄 mkdir branch-practice cd branch-practice# 初始化倉庫 git init# 創建初始文件 echo "# 分支…

【筆記】算法設計:異或空間線性基

Content1.什么是異或(定義和性質)2.異或空間線性基的構造方法3.異或空間線性基的應用4.算法設計例舉5.小結說明算法設計應用之前,首先明確異或空間線性基:一種數據結構。用于處理異或關系(運算)下的向量空間…

Filebeat采集數據與日志分析實戰

🌟Filebeat采集數據的原理 Filebeat默認按行采集數據,如果數據沒有換行,則該條數據無法采集到 屬于有狀態服務,可以記錄上一次采集數據的位置點信息 修改配置文件 vim /etc/filebeat/config/03-log-to-console.yaml filebeat.inp…

Fluent Bit針對kafka心跳重連機制詳解(下)

#作者:程宏斌 文章目錄disconnectreconnect接上篇:https://blog.csdn.net/qq_40477248/article/details/150957571?spm1001.2014.3001.5501disconnect 斷開連接的情況主要是兩種: 連接或傳輸過程中有錯誤發生 超時, 比如空閑時間超時 ** * Close and …

React 第七十一節 Router中generatePath的使用詳解及注意事項

前言 generatePath 是 React Router 的一個實用工具函數,用于根據路徑模式和參數對象生成實際的 URL 路徑。它在需要動態構建鏈接的場景中非常有用,比如生成導航鏈接或重定向路徑。 1、基本用法和注意事項 import { generatePath } from react-router-do…

Python 爬蟲案例:爬取豆瓣電影 Top250 數據

一、案例背景與目標 豆瓣電影 Top250 是國內權威的電影評分榜單之一,包含電影名稱、評分、評價人數、導演、主演、上映年份、國家 / 地區、類型等關鍵信息。本案例將使用 Python 編寫爬蟲,實現以下目標: 自動請求豆瓣電影 Top250 的 10 個分…

SPA安全警示:OAuth2.0致命漏洞

OAuth2.0在SPA應用中的安全陷阱SPA(單頁應用)通常采用隱式授權(Implicit Flow)或PKCE(Proof Key for Code Exchange)授權模式,但存在以下安全隱患:隱式授權模式的漏洞訪問令牌直接暴…

table表格字段明細展示

文章目錄1、字段渲染2、異步請求展示明細3、hover展示問題3.1 基本邏輯3.2 hover時長判斷3.3 renderhover表格字段明細展示,屬于比較小的需求,但是也有一定交互細節,本文選取部分場景。 1、字段渲染 render和渲染組件是有區別的。render常見為…

主網上線后生態極速擴張的 Berachain 生態,有哪些值得關注的項目?

Berachain 是典型的將 DeFi 思維嵌入到共識機制中的 Layer1,其核心是 PoL(Proof of Liquidity)共識。PoL 要求驗證者在獲得區塊獎勵前,必須將流動性導入白名單協議,并由市場決定資金流向。這樣,驗證者的權重…

claude-code對比GitHub-Copilot

Claude Code 文檔日期:2025 年 08 月 20 日 定位 項目級開發助手,專注于全局視野和復雜任務的處理。 特點 超長上下文支持:支持 200k 超長上下文,適合處理復雜項目。豐富的自定義命令:提供靈活的命令配置,滿…

Roo Code自定義Mode(模式)

什么是自定義模式? 簡單來說,自定義模式就像是給Roo Code穿上不同的"職業裝"。你可以創建針對特定任務或工作流程量身定制的模式,讓Roo在不同場景下表現出專業的行為。 這些模式分為兩種類型:全局模式(在所有…

Next.js渲染模式:SSR、SSG與ISR揭秘

Next.js 核心渲染模式深度解析:SSR、SSG 與 ISR 在構建現代 Web 應用時,性能和用戶體驗是至關重要的考量。Next.js 作為 React 生態中一個備受推崇的框架,其強大的服務端渲染(SSR)、靜態站點生成(SSG&#…

Veo Videos Generation API 對接說明

本文介紹了如何對接 Veo Videos Generation API,通過輸入自定義參數生成Veo官方視頻。 下面將詳細闡述 Veo Videos Generation API 的對接流程。 申請流程 使用 API 前,需前往 Veo Videos Generation API 頁面申請服務。進入頁面后,點擊「…

YOLO 目標檢測:YOLOv3網絡結構、特征輸出、FPN、多尺度預測

文章目錄一、YOLOV31、網絡結構1.1 整體結構1.2 主干網絡1.3 特征輸出1.4 特征融合FPN(Feature Pyramid Networks)FPN 融合上采樣融合2、多尺度預測3、損失函數4、性能對比一、YOLOV3 YOLOv3(You Only Look Once v3)是YOLO系列中…

【GIS圖像處理】有哪些SOTA方法可以用于將1.5米分辨率遙感圖像超分辨率至0.8米精度的?

針對將1.5米分辨率遙感圖像超分辨率至0.8米的需求,當前主流方法可分為以下幾類,結合最新研究進展和實際應用場景,具體技術方案及SOTA方法如下: 一、基于Transformer的高效建模 1. Top-k標記選擇Transformer(TTST) 核心機制:通過動態選擇前k個關鍵標記(token),消除冗…