代碼隨想錄算法訓練營day2(數組)

華子目錄

  • 長度最小的子數組
    • 思路
  • 螺旋矩陣
    • 思路
    • 總結

長度最小的子數組

  • https://leetcode.cn/problems/minimum-size-subarray-sum/

在這里插入圖片描述

思路

  • 使用滑動窗口left表示滑動窗口的起始點right表示滑動窗口的終點
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:left = 0     # left表示滑動窗口的起始點res = float('inf')   # float('inf')表示無窮大total = 0    # 記錄滑動窗口中的和length = len(nums)for right in range(length):   # right表示滑動窗口的終點total += nums[right]while total >= target:l = right - left + 1res = min(l, res)total -= nums[left]left += 1if res == float('inf'):   # 說明在遍歷過程中,初始的res始終沒有被替換,即nums的總和小于targetreturn 0else:                # res被替換了,說明有滿足條件的return res

螺旋矩陣

  • https://leetcode.cn/problems/spiral-matrix-ii/

在這里插入圖片描述

思路

  • 每遍歷一條邊時,保持循環不變量原則,即每一條邊都遵循左閉右開[)的原則
class Solution:def generateMatrix(self, n: int) -> List[List[int]]:arr = [ [None]*n for _ in range(n)]   # 先申請好一段二維數組startx, starty = 0, 0   # 每遍歷一圈的起始位置offset = 1               # 右開count = 1               # 技術器loop = n // 2           # 總共螺旋的圈數mid = n // 2             # 若n為奇數,則最中間元素的坐標while loop > 0:for y in range(starty, n - offset):    # 上邊arr[startx][y] = countcount+=1for x in range(startx, n - offset):   # 右邊arr[x][n - offset] = countcount+=1for y in range(n - offset, starty, -1):   # 下邊arr[n - offset][y] = countcount+=1for x in range(n - offset, startx, -1):   # 左邊arr[x][starty] = countcount+=1startx += 1starty += 1offset += 1loop -= 1if n%2 == 1:   # 若n為奇數arr[mid][mid] = n*nreturn arr

總結

在這里插入圖片描述

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

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

相關文章

6.1 GitHub億級數據采集實戰:雙通道架構+三級容災設計,破解API限制與反爬難題

GitHub 項目數據獲取功能設計與實現 關鍵詞:GitHub API 集成、網頁爬蟲開發、數據存儲設計、定時任務調度、異常處理機制 1. 數據獲取架構設計 采用雙通道數據采集策略,同時使用 GitHub 官方 API 和網頁爬蟲技術確保數據完整性: #mermaid-svg-XUg7xhHrzFAozG4J {font-fami…

設計模式(結構型)-橋接模式

目錄 摘要 定義 類圖 角色 具體實現 優缺點 優點 缺點 使用場景 使用案例 JDBC 和橋接模式 總結 摘要 在軟件開發領域,隨著系統規模和復雜性的不斷攀升,如何設計出具有良好擴展性、靈活性以及可維護性的軟件架構成為關鍵挑戰。橋接模式作為一…

Go 微服務框架 | 中間件

文章目錄 定義中間件前置中間件后置中間件路由級別中間件 定義中間件 中間件的作用是給應用添加一些額外的功能,但是不會影響原有應用的編碼方式,想用的時候直接添加,不想用的時候也可以輕松去除,實現所謂的可插拔。中間件的實現…

leetcode 198. House Robber

本題是動態規劃問題。 第一步,明確并理解dp數組以及下標的含義 dp[i]表示從第0號房間一直到第i號房間(包含第i號房間)可以偷到的最大金額,具體怎么偷這里不考慮,第i1號及之后的房間也不考慮。換句話說,dp[i]也就是只考慮[0,i]號…

掌趣科技前端面試題及參考答案

你使用 Vue 的頻率如何,用得比較多嗎? 在前端開發工作中,我對 Vue 的使用較為頻繁。Vue 作為一款輕量級、易于上手且功能強大的前端框架,在眾多項目里都發揮著重要作用。 在日常的項目里,Vue 的組件化開發特性為我帶來了極大的便利。組件化能夠將頁面拆分成多個小的、可復…

深入解析Python爬蟲技術:從基礎到實戰的功能工具開發指南

一、引言:Python 爬蟲技術的核心價值 在數據驅動的時代,網絡爬蟲作為獲取公開數據的重要工具,正發揮著越來越關鍵的作用。Python 憑借其簡潔的語法、豐富的生態工具以及強大的擴展性,成為爬蟲開發的首選語言。根據 Stack Overflow 2024 年開發者調查,68% 的專業爬蟲開發者…

CSS 筆記——Flexbox(彈性盒布局)

目錄 1. Flex 容器與 Flex 項目 2. 主軸與交叉軸 3. Flex 容器的屬性 display flex-direction justify-content align-items align-content flex-wrap 4. Flex 項目的屬性 flex-grow flex-shrink flex-basis flex align-self 5. Flexbox 的優點 6. Flexbox 的…

Java學習手冊:Java反射與注解

Java反射(Reflection)和注解(Annotation)是Java語言中兩個強大的特性,它們在框架開發和復雜應用中扮演著重要角色。反射允許程序在運行時檢查和操作類、對象、接口、字段和方法,而注解則提供了一種元數據形…

JavaWeb遇到的問題匯總

問題一:(鍵值對最后一項沒有逗號) 在JSON字符串轉自定義對象和自定義對象轉JSON字符串時: 如圖所示:若忘記刪除鍵值對的最后一項沒有逗號時,則下一句轉換不會生效,應該刪除最后一項的逗號。 解…

模板引擎語法-變量

模板引擎語法-變量 文章目錄 模板引擎語法-變量(一)在Django框架模板中使用變量的代碼實例(二)在Django框架模板中使用變量對象屬性的代碼實例(三)在Django框架模板中使用變量顯示列表 (一&…

AUTO-RAG: AUTONOMOUS RETRIEVAL-AUGMENTED GENERATION FOR LARGE LANGUAGE MODELS

Auto-RAG:用于大型語言模型的自主檢索增強生成 單位:中科院計算所 代碼: https://github.com/ictnlp/Auto-RAG 擬解決問題:通過手動構建規則或者few-shot prompting產生的額外推理開銷。 貢獻:提出一種以LLM決策為中…

Python 基礎語法匯總

Python 語法 │ ├── 基本結構 │ ├── 語句(Statements) │ │ ├── 表達式語句(如賦值、算術運算) │ │ ├── 控制流語句(if, for, while) │ │ ├── 定義語句(def…

一文詳解ffmpeg環境搭建:Ubuntu系統ffmpeg配置nvidia硬件加速

在Ubuntu系統下安裝FFmpeg有多種方式,其中最常用的是通過apt-get命令和源碼編譯安裝。本文將分別介紹這兩種方式,并提供安裝過程。 一、apt-get安裝 使用apt-get命令安裝FFmpeg是最簡單快捷的方式,只需要在終端中輸入以下命令即可: # 更新軟件包列表 sudo apt-get updat…

Android 14 、15動態申請讀寫權限實現 (Java)

在 Android 14、15 中&#xff0c;Google 進一步優化了存儲權限系統&#xff0c;特別是寫權限的管理。以下是完整的 Java 實現方案&#xff1a; 1. AndroidManifest.xml 聲明權限 <!-- Android 14 存儲權限 --> <uses-permission android:name"android.permiss…

小剛說C語言刷題——第23講 字符數組

前面&#xff0c;我們學習了一維數組和二維數組的概念。今天我們學習一種特殊的數組&#xff0c;字符數組。 1.字符數組的概念 字符數組就是指元素類型為字符的數組。字符數組是用來存放字符序列或者字符串的。 2.字符數組的定義及語法 char ch[5]; 3.字符數組的初始化及賦…

用AI生成系統架構圖

DeepSeek+Drawio+SVG繪制架構圖-找到一種真正可行實用的方法和思路 1、使用DeepSeek生成SVG文件,導入drawio工具的方法 ?? 問題根源分析 錯誤現象: ? 導入時報錯包含 data:image/SVG;base64 和 %20 等 URL 編碼字符 ? 代碼被錯誤轉換為 Base64 格式(適用于網頁嵌入,但…

免費干凈!付費軟件的平替款!

今天給大家分享一款超棒的電腦錄屏軟件&#xff0c;簡直不要太好用&#xff01;它的界面特別干凈&#xff0c;沒有一點兒廣告&#xff0c;看起來特別清爽。 電腦錄屏 無廣告的錄屏軟件 這個軟件超方便&#xff0c;根本不用安裝&#xff0c;打開就能直接用。 它功能也很強大&am…

【XCP實戰】AUTOSAR架構下XCP從0到1開發配置實踐

目錄 前言 正文 1.CAN功能開發 1.1 DBC的制作及導入 1.2 CanTrcv模塊配置 1.3 Can Controller模塊配置 1.4 CanIf模塊配置 2.XCP模塊集成配置配置 2.1.XCP模塊配置 2.2.XCP模塊的Task Mapping 2.3.XCP模塊的初始化 3.在鏈接文件中定義標定段 4.編寫標定相關的測試…

Vitis: 使用自定義IP時 Makefile錯誤 導致編譯報錯

參考文章: 【小梅哥FPGA】 Vitis開發中自定義IP的Makefile路徑問題解決方案 Vitis IDE自定義IP Makefile錯誤&#xff08;arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument&#xff09;解決方法 Vitis 使用自定義IP時: Makefile 文件里的語句是需要修改的&#xff0c;…

Python中NumPy的統計運算

在數據分析和科學計算領域&#xff0c;Python憑借其豐富的庫生態系統成為首選工具之一&#xff0c;而NumPy作為Python數值計算的核心庫&#xff0c;憑借其高效的數組操作和強大的統計運算功能&#xff0c;廣泛應用于機器學習、信號處理、統計分析等場景。本文將系統介紹NumPy在…