貪心,回溯,動態規劃

1.貪心算法

? 貪心算法是一種在每一步選擇中都采取在當前狀態下最好或最優的選擇,從而希望全局最好或是最優的算法。

  1. 特點
    • 局部最優選擇
    • 不能保證全局最優
    • 高效
  2. 適用條件
    • 局部最優可以導致全局最優
    • 問題的最優解包含子問題的最優解
  3. 經典問題
    • 活動選擇問題
    • 最短路徑
    • 最小生成樹

2.動態規劃

? 動態規劃是一種分治思想,通常將原問題分解為相對簡單的子問題的方式來求解復雜問題的方法。動態規劃常常適用于有重疊子問題和最優子結構性質的題.

  1. 特點
    • 重疊子問題:問題可以分解成若干子問題,且子問題會重復出現
    • 問題的最優解包含子問題的最優解
    • 存儲子問題的解以避免重復計算
  2. 適用條件
    • 局部最優可以導致全局最優
    • 問題的最優解包含子問題的最優解
  3. 經典問題
    • 斐波那契數列
    • 背包問題
    • 最長公共子序列
    • 最短路徑問題
  4. 解題步驟
    1. 確定dp數組(dp table)以及下標的含義
    2. 確定遞推公式
    3. dp數組如何初始化
    4. 確定遍歷順序
    5. 舉例推導dp數組

3.回溯

? 回溯算法是一種通過探索所有可能的候選解來找出所有解的算法。

  1. 特點

    • 系統性:逐步構建候選解
    • 跳躍性:當發現部分候選解不可能得到正確解時,放棄該解(剪枝)
    • 通常用遞歸實現
  2. 經典問題

    • 組合問題:N個數里面按一定規則找出k個數的集合
    • 切割問題:一個字符串按一定規則有幾種切割方式
    • 子集問題:一個N個數的集合里有多少符合條件的子集
    • 排列問題:N個數按一定規則全排列,有幾種排列方式
    • 棋盤問題:N皇后,解數獨等等
  3. 代碼框架

    void backtracking(參數) {if (終止條件) {存放結果;return;}for (選擇:本層集合中元素(樹中節點孩子的數量就是集合的大小)) {處理節點;backtracking(路徑,選擇列表); // 遞歸回溯,撤銷處理結果}
    }

4.三者區別

在這里插入圖片描述

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

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

相關文章

【Netty4核心原理⑧】【揭開Bootstrap的神秘面紗 - 服務端Bootstrap?】

文章目錄 一、前言二、流程分析1. 創建 EventLoopGroup2. 指定 Channel 類型2.1 Channel 的創建2.2 Channel 的初始化 3. 配置自定義的業務處理器 Handler3.1 ServerBootstrap#childHandler3.2 handler 與 childHandler 的區別 4. 綁定端口服務啟動 三、bossGroup 與 workerGro…

為什么需要自動下載瀏覽器驅動?

為什么需要自動下載瀏覽器驅動? 血淚場景重現 新人入職第一天: 花3小時配置Chrome/Firefox驅動版本不匹配導致SessionNotCreatedException 瀏覽器自動更新后: 所有測試腳本突然崩潰手動查找驅動耗時長 終極解決方案:自動下載驅…

NLP常用工具包

?做一次按NLP項目常見工具的使用拆解 1. tokenizer from torchtext.data.utils import get_tokenizertokenizer get_tokenizer(basic_english) text_sample "Were going on an adventure! The weather is really nice today." tokens tokenizer(text_sample) p…

在 Vue 的template中使用 Pug 的完整教程

在 Vue 的template中使用 Pug 的完整教程 引言 什么是 Pug? Pug(原名 Jade)是一種高效的網頁模板引擎,通過縮進式語法和簡潔的寫法減少 HTML 的冗長代碼。Pug 省略了尖括號和閉合標簽,使用縮進定義結構,…

【Android基礎回顧】四:ServiceManager

Android 中的 ServerManager 是 Android 框架中一個用于管理系統服務的核心機制。它是 Binder IPC 的一部分,用于在客戶端和服務端之間建立聯系,廣泛應用于系統服務(如 ActivityManager、WindowManager 等)的注冊與獲取。 1 Serv…

【Android基礎回顧】一:Binder機制是什么?有什么用?

Android中的Binder機制是Android系統中最核心和最基礎的進程間通訊機制。 1 什么是進程間通訊機制(IPC)? 眾所周知,Android系統基于Linux開發,Linux系統里面本來就有進程間通訊機制。 1.1 Linux的IPC(Inter-Process Communication)概覽 它…

Go語言爬蟲系列教程5:HTML解析技術以及第三方庫選擇

Go語言爬蟲系列教程5:HTML解析技術以及第三方庫選擇 在上一章中,我們使用正則表達式提取網頁內容,但這種方法有局限性。對于復雜的HTML結構,我們需要使用專門的HTML解析庫。在這一章中,我們將介紹HTML解析技術以及如何…

AtCoder 第408?場初級競賽 A~E題解

A Timeout 【題目鏈接】 原題鏈接:A - Timeout 【考點】 模擬 【題目大意】 長老會在 s 秒后睡去,進過 n 次叫醒,長老最后能否是保持清醒。 【解析】 模擬每一次拍擊叫醒的過程,查看本次時間距上次時間是否大于 s。注意:第一次拍擊叫醒應和 0 秒相減。 【難度】 …

Unity VR/MR開發-VR設備與適用場景分析

視頻講解鏈接:【XR馬斯維】VR/MR設備與適用場景分析?【UnityVR/MR開發教程--入門】_游戲熱門視頻

MyBatis 查詢功能實現全流程

一、創建maven項目 配置好相應的jdk 二、在數據庫建立相應的表格 1.因為Mybatis實際是對sql表的一系列操作,所以我們新建一個數據庫 2.在查詢界面運行下面指令創建一個user表 CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(32) NOT NU…

tcp/udp

tcp/udp協議概述 傳輸層協議基本概念 傳輸層協議建立在網絡層和會話層之間,為應用層實體提供端到端的通信功能,確保數據包的順序傳送及數據的完整性。它利用網絡層提供的服務,并通過傳輸層地址(端口號)提供給高層用戶…

k8s集群安裝坑點匯總

前言 由于使用最新的Rocky9.5,導致kubekey一鍵安裝用不了,退回Rocky8麻煩機器都建好了,決定手動安裝k8s,結果手動安裝過程中遇到各種坑,這里記錄下; k8s安裝 k8s具體安裝過程可自行搜索,或者deepseek; 也…

深入解析 Dotnet-Boxed.Framework:提升 .NET 開發效率的利器

在現代 .NET 開發中,框架和工具的選擇對項目的開發效率和長期維護至關重要。Dotnet-Boxed.Framework 是一個開源框架,旨在簡化開發流程,提高生產力。它通過一組實用的工具和自動化功能,幫助開發者快速構建高質量的應用程序。本文將…

如何輕松地將文件從 PC 傳輸到 iPhone?

傳統上,您可以使用 iTunes 將文件從 PC 傳輸到 iPhone,但現在,使用 iTunes 已不再是唯一的選擇。現在有多種不同且有效的方法可以幫助您傳輸文件。在今天的指南中,您可以找到 8 種使用或不使用 iTunes 傳輸文件的方法,…

Kafka深度解析與原理剖析

文章目錄 一、Kafka核心架構原理1. **分布式協調與選舉**2. **ISR、OSR與HW機制**3. **高性能存儲設計**4. **刷盤機制 (Flush)**5. **消息壓縮算法**二、高可用與消息可靠性保障1. **數據高可用策略**2. **消息丟失場景與規避**3. **順序消費保證**三、Kafka高頻面試題精析1. …

【教學類】20250605立體紙盤(3邊形-22邊形,角度5、10……40,45)

背景需求 在《自助餐》活動中, 【教學類-53-01】20240918自助餐餐盤-CSDN博客文章瀏覽閱讀984次,點贊29次,收藏11次。【教學類-53-01】20240918自助餐餐盤https://blog.csdn.net/reasonsummer/article/details/142340542?spm1011.2415.300…

GC1809:高性能24bit/192kHz音頻接收芯片解析

1. 芯片概述 GC1809 是數字音頻接收芯片,支持IEC60958、S/PDIF、AES3等協議,集成8選1輸入切換、低抖動時鐘恢復和24bit DAC,適用于家庭影院、汽車音響等高保真場景。 核心特性 高精度:24bit分辨率,動態范圍105dB&…

Next.js 中間件鑒權繞過漏洞 CVE-2025-29927

前言:CVE-2025-29927 是一個影響 Next.js 的嚴重漏洞&#xff0c;源于開發者信任了客戶端請求中攜帶的 X-Middleware-Rewrite 頭部字段。攻擊者可以手動構造該頭部&#xff0c;實現繞過中間件邏輯&#xff0c;訪問本應受保護的資源或 API。 影響版本&#xff1a;Next.js < …

第1章 數據分析簡介

第1章 數據分析簡介 1.1 數據分析 當今世界對信息技術依賴日深,每天產生和存儲海量數據,來源于自動檢測系統、傳感器、科學儀器,以及銀行取錢、買東西、寫博客、發微博等日常行為。 數據與信息在形式上不同:數據是無形式可言的字節流,難理解其本質;信息是對數據集處理后…

邊緣計算網關賦能沸石轉輪運行故障智能診斷的配置實例

一、項目背景 在環保行業&#xff0c;隨著國家對大氣污染治理要求的不斷提高&#xff0c;VOCs廢氣處理成為了眾多企業的重要任務。沸石轉輪作為一種高效的VOCs治理設備&#xff0c;被廣泛應用于石油化工、汽車制造、印刷包裝等主流行業。這些行業生產規模大、廢氣排放量多&…