子序列問題寫法

子序列問題可以按照動態規劃的思想去寫。

子序列問題類型

子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。

例如,[3,6,2,7] 是數組 [0,3,1,6,2,2,7] 的子序列。

寫法思路

創建兩層for循環,外層為for(int i=0;i<n;i++);內層為for(int j=0;j<i;j++)。

然后就寫轉移方程即可。

例題:NO.300. 最長遞增子序列

題目:

鏈接:

https://leetcode.cn/problems/longest-increasing-subsequence/description/

代碼:

class Solution {// 狀態表示: 以i結束的序列,最長嚴格遞增序列的長度;            public int lengthOfLIS(int[] nums) {int n=nums.length;int[] dp=new int[n];// 初始化:for(int i=0;i<n;i++) dp[i]=1;int ret=1;for(int i=0;i<n;i++){for(int j=0;j<i;j++){// 轉移方程:if(nums[i]>nums[j]){dp[i]=Math.max(dp[i],dp[j]+1);}}ret=Math.max(ret,dp[i]);}return ret;}
}

狀態表示:

  以i結束的序列,最長嚴格遞增序列的長度;

轉移方程:

     長度為1時,dp[i]=1;長度大于1時,滿足(nums[i]>nums[j],則dp[i]=Math.max(dp[i],dp[j]+1);初始化:因為長度>=1,所以每一個以i結尾的序列,最小長度為1,于是令全數組長度為1.填表順序: 從左往右依次填寫。

總結:

子序列問題包含子數組問題,這類問題是動態規劃的一種形式(當然也可以用其他方法寫),只不過是變成了雙層for循環。

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

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

相關文章

C++ primer plus 使用類下

目錄 前言 一 轉換函數 總結 前言 接著上一章的內容 一 轉換函數 接著我們上一章節的內容&#xff0c;我們知道我們類里面有一個自動轉換利用這個運算符&#xff0c;這樣就可以使得對象可以接受這個值 那么有沒有可以使一個普通類型去接收一個對象呢&#xff1f; 答案是…

聲網自研算法如何重定義AI交互容災標準

在咖啡廳里&#xff0c;當我把手機置于咖啡機與微波爐形成的電磁干擾區時&#xff0c;WiFi丟包率飆升至83%&#xff0c;但AI的回應延遲僅從1.2秒增至1.4秒。這背后是聲網自研的Phoenix抗弱網算法在發揮作用&#xff0c;通過AI驅動的動態FEC&#xff08;前向糾錯&#xff09;機制…

詳解布隆過濾器及其模擬實現

目錄 布隆過濾器 引入 概念 工作原理 模擬實現布隆過濾器 哈希函數集 布隆過濾器基本框架 add函數&#xff08;添加到布隆過濾器中&#xff09; contains函數&#xff08;判斷是否存在該值&#xff09; 完整代碼 布隆過濾器的刪除 布隆過濾器的誤判率 布隆過濾器的…

巧用 VSCode 與 AI 編碼提升 Vue 前端開發效率

在當今快節奏的軟件開發領域&#xff0c;提升開發效率是每個開發者都追求的目標。對于 Vue 前端開發而言&#xff0c;Visual Studio Code&#xff08;VSCode&#xff09;已經成為了眾多開發者的首選編輯器。而隨著人工智能技術的發展&#xff0c;各類 AI 編碼擴展工具如雨后春筍…

5分鐘快速申請一個EDU教育郵箱

感謝CSDN作者 CodeDevMaster 于 2023-10-16 13:22:40 發布作品《5分鐘快速申請一個EDU教育郵箱》 本文內容為作者方法的實踐與復刻&#xff0c;同時 現在是2025/03/17&#xff0c;執行的細節有部分變動&#xff0c;所以完整展示一波。 祝各位好運&#xff0c;同時本案例中展示…

Go string 字符串底層邏輯

在 Go 語言中&#xff0c;string 類型的底層結構是一個結構體&#xff0c;包含兩個字段&#xff1a;一個指向字節數組的指針和該字節數組的長度。以下是其在 Go 源碼中的大致定義&#xff1a;type stringStruct struct {str unsafe.Pointerlen int } str&#xff1a;這是一個指…

【NLP】10. 機器學習模型性能評估指標(含多類別情況), ROC,PRC

機器學習模型性能評估指標&#xff08;含多類別情況&#xff09; 1. 模型評估指標簡介 在機器學習中&#xff0c;模型的性能評估非常重要。常用的模型評估指標有&#xff1a; 準確率&#xff08;Accuracy&#xff09;精度&#xff08;Precision&#xff09;召回率&#xff0…

開源通義萬相本地部署方案,文生視頻、圖生視頻、視頻生成大模型,支持消費級顯卡!

開源通義萬相本地部署方案&#xff0c;文生視頻、圖生視頻、視頻生成大模型&#xff0c;支持消費級顯卡&#xff01; 萬相2.1開源 近日&#xff0c;大模型萬相2.1&#xff08;Wan&#xff09;重磅開源&#xff0c;此次開源采用Apache2.0協議&#xff0c;14B和1.3B兩個參數規格…

機器學習與深度學習中模型訓練時常用的四種正則化技術L1,L2,L21,ElasticNet

L1正則化和L2正則化是機器學習中常用的兩種正則化方法&#xff0c;用于防止模型過擬合。它們的區別主要體現在數學形式、作用機制和應用效果上。以下是詳細對比&#xff1a; 1. 數學定義 L1正則化&#xff08;也叫Lasso正則化&#xff09;&#xff1a; 在損失函數中加入權重參…

qt+opengl 播放yuv視頻

一、實現效果 二、pro文件 Qt widgets opengl 三、主要代碼 #include "glwidget.h"GLWidget::GLWidget(QWidget *parent) : QOpenGLWidget(parent) {connect(&m_timer, &QTimer::timeout, this,[&](){this->update();});m_timer.start(1000/33); }v…

Android開源庫——RxJava和RxAndroid

RxJava和RxAndroid是什么&#xff1f; RxJava是基于JVM的響應式擴展&#xff0c;用于編寫異步代碼 RxAndroid是關于Android的RxJava綁定 RxJava和RxAndroid使用 依賴 implementation io.reactivex.rxjava3:rxjava:3.1.0 implementation io.reactivex.rxjava3:rxandroid:3.…

并發基礎—三大問題:可見性、原子性、有序性

文章目錄 可見性原子性有序性&#xff08;指令重排&#xff09;經典的指令重排案例&#xff1a;單例模式的雙重檢查鎖volatile和synchronize都可以保證有序性并發壓測工具Jcstress證明指令重排會在多線程下出現問題&#xff08;了解&#xff09;CPU緩存分為三個級別&#xff1a…

PyTorch 入門學習

目錄 PyTorch 定義 核心作用 應用場景 Pytorch 基本語法 1. 張量的創建 2. 張量的類型轉換 3. 張量數值計算 4. 張量運算函數 5. 張量索引操作 6. 張量形狀操作 7. 張量拼接操作 8. 自動微分模塊 9. 案例-線性回歸案例 PyTorch 定義 PyTorch 是一個基于 Python 深…

Hive SQL 精進系列:REGEXP_REPLACE 函數的用法

目錄 一、引言二、REGEXP_REPLACE 函數基礎2.1 基本語法參數詳解2.2 簡單示例 三、REGEXP_REPLACE 函數的應用場景3.1 去除特殊字符3.2 統一字符串格式 四、REGEXP_REPLACE 與 REPLACE 函數的對比4.1 功能差異4.2 適用場景 五、REGEXP_REPLACE 與 REGEXP 函數的對比5.1 功能差異…

從0開始搭建微服務架構特別篇SpringCloud網關聚合knife4j

前言&#xff1a;總所周知項目開發接口測試需要knife4j&#xff0c;但是&#xff0c;微服務架構中微服務很多&#xff0c;模塊地址很多&#xff0c;需要統一管理api測試&#xff0c;就需要聚合在網關統一調用&#xff0c;本章&#xff0c;就說明如何通過網關聚合使用knife4j。 …

Spring Cloud 中的服務注冊與發現: Eureka詳解

1. 背景 1.1 問題描述 我們如果通過 RestTamplate 進行遠程調用時&#xff0c;URL 是寫死的&#xff0c;例如&#xff1a; String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 當機器更換或者新增機器時&#xff0c;這個 URL 就需要相應地變…

網頁制作15-Javascipt時間特效の記錄網頁停留時間

01效果圖&#xff1a; 02運用&#xff1a; window.setTimeout&#xff08;&#xff09;刷新function&#xff08;&#xff09;函數document.forms&#xff08;&#xff09;&#xff1a;表單if條件語句window.alert&#xff08;&#xff09;窗口警示 03、操作代碼&#xff1a;…

【Rust基礎】排序和分組

排序 簡單排序 整數排序 #[test] fn test_sort(){let mut list vec![1, 5, 3, 2, 4];list.sort(); //?assert_eq!(list, vec![1, 2, 3, 4, 5]); }小數排序 #[test] fn test_sort(){let mut list vec![1, 5, 3, 2, 4];//? 不能直接使用sort&#xff0c;因為f32和f64未實現O…

C++ std::list超詳細指南:基礎實踐(手搓list)

目錄 一.核心特性 1.雙向循環鏈表結構 2.頭文件&#xff1a;#include 3.時間復雜度 4.內存特性 二.構造函數 三.list iterator的使用 1.學習list iterator之前我們要知道iterator的區分 ?編輯 2.begin()end() 3.rbegin()rend() 四.list關鍵接口 1.empty() 2. size…

996引擎 - 紅點系統

996引擎 - 紅點系統 總結NPC 紅點(TXT紅點)Lua 紅點1. Red_Point.lua2. UI_Ex.lua參考資料以下內容是在三端 lua 環境下測試的 總結 紅點系統分幾個部分組成。 M2中設置變量推送。 配置紅點表。 Envir\Data\cfg_redpoint.xls 2.1. UI元素中找到ID填寫 ids 列。 主界面掛載…