代碼隨想錄算法訓練營第三十四天 | 理論基礎、455.分發餅干、376、擺動序列、53.最大子序和

目錄

理論基礎

455.分發餅干

思路

代碼

376.擺動序列

思路

代碼

53.最大子序和

思路

代碼


理論基礎

代碼隨想錄

455.分發餅干

代碼隨想錄

思路

? ? ? ? 可以是大餅干優先滿足大胃口,也可以是小餅干優先滿足小胃口。

代碼
class Solution:def findContentChildren(self, g, s):g.sort()  # 將孩子的貪心因子排序s.sort()  # 將餅干的尺寸排序index = 0for i in range(len(s)):  # 遍歷餅干if index < len(g) and g[index] <= s[i]:  # 如果當前孩子的貪心因子小于等于當前餅干尺寸index += 1  # 滿足一個孩子,指向下一個孩子return index  # 返回滿足的孩子數目

376.擺動序列

代碼隨想錄?

思路

? ? ? ? 真就像Carl哥說的那樣:

貪心算法其實就是沒有什么規律可言,所以大家了解貪心算法 就了解它沒有規律的本質就夠了。

不用花心思去研究其規律, 沒有思路就立刻看題解

基本貪心的題目 有兩個極端,要不就是特簡單,要不就是死活想不出來。

? ? ? ? ?我連用什么方式來判斷這個是正,下個是負,或者這個是負,下個是正都不會。。。(每日崩潰1/1),其實就是用兩個變量來存儲。計算波峰的次數,具體可以看鏈接。

代碼
class Solution:def wiggleMaxLength(self, nums):if len(nums) <= 1:return len(nums)  # 如果數組長度為0或1,則返回數組長度curDiff = 0  # 當前一對元素的差值preDiff = 0  # 前一對元素的差值result = 1  # 記錄峰值的個數,初始為1(默認最右邊的元素被視為峰值)for i in range(len(nums) - 1):curDiff = nums[i + 1] - nums[i]  # 計算下一個元素與當前元素的差值# 如果遇到一個峰值if (preDiff <= 0 and curDiff > 0) or (preDiff >= 0 and curDiff < 0):result += 1  # 峰值個數加1preDiff = curDiff  # 注意這里,只在擺動變化的時候更新preDiffreturn result  # 返回最長擺動子序列的長度

53.最大子序和

代碼隨想錄?

思路

? ? ? ? 貪心真的很逆天,一點思路都沒有,暴力法最后十個用例過不了的。。。Carl點撥了一下我覺得很有道理,一個負數加一個正數肯定比0加一個正數要小,所以就是從頭開始遍歷起,不斷計算累計和,如果累計和是負數,前面那一整段就不要了,直接0加后面的數,從后面開始重新算。

代碼
class Solution:def maxSubArray(self, nums):result = float('-inf')  # 初始化結果為負無窮大count = 0for i in range(len(nums)):count += nums[i]if count > result:  # 取區間累計的最大值(相當于不斷確定最大子序終止位置)result = countif count <= 0:  # 相當于重置最大子序起始位置,因為遇到負數一定是拉低總和count = 0return result

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

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

相關文章

ArkUI-X開發指南:【SDK配置和構建說明】

ArkUI-X SDK配置和構建說明 ArkUI-X SDK是ArkUI-X開源項目的編譯產物&#xff0c;可將ArkUI-X SDK集成到現有Android和iOS應用工程中&#xff0c;使開發者基于一套ArkTS主代碼&#xff0c;就可以構建支持多平臺的精美、高性能應用。SDK內容包含ArkUI跨平臺運行時&#xff0c;組…

安裝SSL證書能提高網站訪客嗎?

在當今互聯網時代&#xff0c;網站的安全性和用戶體驗至關重要。隨著網絡攻擊和數據泄露事件的不斷增加&#xff0c;用戶對網站的信任也變得越來越重要。SSL證書是一種數字證書&#xff0c;可以在Web服務器和網頁瀏覽器之間建立加密鏈接&#xff0c;確保網站傳輸的數據安全&…

【HarmonyOS嘗鮮課】- 前言

面向人群 本課程適用于HarmonyOS應用開發的初學者。 有無經驗的開發者都可以輕松掌握ArkTS語言聲明式開發范式&#xff0c;體驗更簡潔、更友好的HarmonyOS應用開發旅程。 什么是HarmonyOS HarmonyOS&#xff08;鴻蒙操作系統&#xff09;是由華為技術有限公司開發的全場景分…

B站自動回復插件_無需千粉,輕松適配引流拉新資源分享

項目介紹 B站關鍵詞自動回復插件&#xff0c;無需千粉&#xff0c; 很適合做流量做引流做私欲的朋友&#xff0c; 前期沒有千粉是無法開啟官方自動回復的&#xff0c; 適當的情況下可以用這個插件頂一下&#xff0c; 三聯好評領取資源的打法真的超級漲粉&#xff0c; 感謝插件…

【OceanBase診斷調優】—— KVCache 排查手冊

原文鏈接&#xff1a;OceanBase分布式數據庫-海量數據 筆筆算數 本文介紹 KVcache 相關問題的排查方法。 KVCache 相關概念 在進行排查前&#xff0c;需要了解幾個概念。 pin 一個 cache 塊 ( memblock ) 被 pin 住&#xff0c;表示它正在被引用。 cache 的由多個定長的塊組成…

HAL庫點LED燈

文章目錄 一、創建CubeMX項目操作步驟1.STM32CubeMX創建工程2.選擇芯片3.Pinout & Configuration配置4.Clock Configuration配置5.Project Manager配置 二、實驗&#xff08;一&#xff09;LED流水燈1.Keil修改代碼2.實驗現象3.keil波形仿真 &#xff08;二&#xff09;2只…

代碼隨想錄(棧和隊列)

用棧實現隊列&#xff08;Leetcode232&#xff09; package 棧和隊列;import java.util.ArrayList; import java.util.Stack; 思路&#xff1a;1、用一個棧stack2來存壓入的數&#xff0c;當要pop或peek操作時再壓入stack中&#xff0c;實現隊列順序2、不是每次pop都從stack2中…

沒有CAN硬件,在Linux下模擬使用Socket CAN

即使沒有實際的CAN硬件,我們仍然可以在Linux下使用socketcan進行模擬。這可以通過使用虛擬的CAN接口(vcan)來實現。vcan接口是Linux內核提供的虛擬CAN總線接口,適用于開發和測試socketcan應用。 以下是如何設置和使用vcan接口的步驟: 1. 加載vcan模塊 首先,你需要確保…

變量命名的藝術:讓你的代碼更具可讀性

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、引言&#xff1a;為何變量命名如此重要&#xff1f; 二、變量命名的基本規則 1. 避免數…

卷爆短劇出海:五大關鍵,由AIGC重構

短劇高溫下&#xff0c;談談AIGC的助攻路線。 短劇&#xff0c;一個席卷全球的高溫賽道。 以往只是踏著霸總題材&#xff0c;如今&#xff0c;內容循著精品化、IP化的自然發展風向&#xff0c;給內容、制作、平臺等產業全鏈都帶來新機&#xff0c;也讓短劇消費走向文化深處&am…

Docker僅需3步搭建免費私有化的AI搜索引擎-FreeAskInternet!

簡介 FreeAskInternet 是一個完全免費、私有且本地運行的搜索引擎&#xff0c;并使用 LLM 生成答案&#xff0c;無需 GPU。用戶可以提出問題&#xff0c;系統會進行多引擎搜索&#xff0c;并將搜索結果合并到ChatGPT3.5 LLM中&#xff0c;并根據搜索結果生成答案。 什么是 Fr…

重學java 39.多線程 — 線程安全

逐漸成為一個情緒穩定且安靜成長的人 ——24.5.24 線程安全 什么時候發生&#xff1f; 當多個線程訪問同一個資源時&#xff0c;導致了數據有問題&#xff0c;出現并發問題&#xff0c;數據不能及時更新&#xff0c;導致數據發生錯誤&#xff0c;出現線程安全問題 多線程安全問…

紋理映射技術在AI去衣中的藝術與科技融合

引言&#xff1a; 在數字圖像處理的世界里&#xff0c;AI去衣技術正逐步揭開其神秘的面紗。這門技術結合了深度學習的智能算法與圖形學的先進手段&#xff0c;以實現對圖像中衣物的智能識別與處理。在這一過程中&#xff0c;紋理映射技術發揮著至關重要的作用。本篇博客將深入探…

變量命名的藝術:從蛇形到駝峰

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、蛇形命名法的魅力 二、類名和模塊名的特殊規則 三、駝峰命名法的魅力與挑戰 四、保持…

【kubernetes】探索k8s集群中kubectl的陳述式資源管理

目錄 一、k8s集群資源管理方式分類 1.1陳述式資源管理方式&#xff1a;增刪查比較方便&#xff0c;但是改非常不方便 1.2聲明式資源管理方式&#xff1a;yaml文件管理 二、陳述式資源管理方法 2.1查看版本信息 2.2查看資源對象簡寫 2.3配置kubectl自動補全 2.4node節點…

初始Java篇(JavaSE基礎語法)—— 內部類

找往期文章包括但不限于本期文章中不懂的知識點&#xff1a; 個人主頁&#xff1a;我要學編程(?_?)-CSDN博客 所屬專欄&#xff1a;JavaSE 目錄 內部類的概念 內部類的種類 使用舉例&#xff1a; 1. 靜態內部類&#xff1a; 2. 實例內部類 3. 局部內部類 4. 匿名內部…

1分鐘帶你搞定Pandas DataFrame運算

1. DataFrame之間的運算 在運算中自動對齊不同索引的數據 如果索引不對應&#xff0c;則補NaN DataFrame沒有廣播機制 導包 # 導包import numpy as npimport pandas as pd 創建 DataFrame df1 不同人員的各科目成績&#xff0c;月考一 # 創建DataFrame二維數組df1 pd.Da…

想要修改Excel表格內容,怎么移除編輯權限?

在使用Excel進行數據處理和管理時&#xff0c;我們經常會遇到需要保護工作表以防止誤操作的情況。有時可能碰到“被保護單元格不支持此功能”的提示&#xff0c;本文將詳細介紹這個問題的解決方案&#xff0c;幫助你取消單元格保護&#xff0c;使用所需的功能。 一、取消單元格…

leetcode刷題記錄:前綴和

https://labuladong.online/algo/problem-set/perfix-sum/#%E8%A7%A3%E6%B3%95%E4%BB%A3%E7%A0%81-3 適用范圍&#xff1a;快速、頻繁地計算一個索引區間內的元素之和 303 區域和檢索&#xff1a;數組不可變 https://leetcode.cn/problems/range-sum-query-immutable/ class …

【Unitydemo制作】音游制作—排行榜邏輯Json存儲

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;就業…