藍橋與力扣刷題(藍橋 藍橋騎士)

題目:小明是藍橋王國的騎士,他喜歡不斷突破自我。

這天藍橋國王給他安排了?N?個對手,他們的戰力值分別為?a1,a2,...,an,且按順序阻擋在小明的前方。對于這些對手小明可以選擇挑戰,也可以選擇避戰。

身為高傲的騎士,小明從不走回頭路,且只愿意挑戰戰力值越來越高的對手。

請你算算小明最多會挑戰多少名對手。

輸入描述

輸入第一行包含一個整數?NN,表示對手的個數。

第二行包含?N?個整數?a1,a2,...,an?,分別表示對手的戰力值。

1≤N≤3×10^5,1≤ai?≤10^9。

輸出描述

輸出一行整數表示答案。

輸入輸出樣例

示例 1

輸入

6
1 4 2 2 5 6

輸出

4

解題思路+代碼:

代碼:

import java.util.Scanner;
import java.util.Arrays;
// 1:無需package
// 2: 類名必須Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt(); // n個對手int[] enemy = new int[n]; //防止數組下標越界for(int i = 0; i<n; i++){enemy[i] = scan.nextInt();//填充n個對手的戰力值}int[] tail = new int[n]; // tail[i] 存儲長度為 i+1 的上升子序列的最小結尾元素int length = 0;//遍歷n個對手for(int i = 0; i<n; i++){int left = 0, right = length; //聲明數組的左右邊界//二分查找while(left<right){ //左邊邊界 小于 右邊邊界int mid = (left + right) / 2; if(tail[mid] < enemy[i]){left = mid + 1; //左邊邊界右移}else{right = mid; //右邊邊界左移}}// 更新當前長度的最小結尾tail[left] = enemy[i];  // 如果 a[i] 比所有 tail 中的值都大,則擴展長度if(left == length){length++;}}System.out.println(length);scan.close();}
}

?總結:這時一道LIS(最長上升子序列)問題,必須采用 貪心 + 二分查找的算法來解答。LIS的核心是必須按照原順序選擇對手,不能隨意調整順序,定義 tail[] 數組,tail[i] 表示長度為 i+1 的上升子序列的最小結尾元素。遍歷每個對手,使用 二分查找 找到第一個比 enemy[i] 大的位置,替換或者擴展序列。最后輸出的?tail[] 數組的長度就是 LIS 長度(length 表示當前找到的最長遞增子序列的長度)

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

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

相關文章

如何查看window電腦的GPU信息

GPU&#xff08;圖形處理器&#xff0c;Graphics Processing Unit&#xff09;和顯卡是兩個密切相關但不同的概念 概念 1. ?基本概念? ?GPU?&#xff1a;是專門用于處理圖像和視頻信息的微處理器&#xff0c;擁有強大的并行計算能力&#xff0c;主要負責圖形渲染、數值分…

26考研——查找_樹形查找_二叉排序樹(BST)(7)

408答疑 文章目錄 三、樹形查找二叉排序樹&#xff08;BST&#xff09;二叉排序樹中結點值之間的關系二叉樹形查找二叉排序樹的查找過程示例 向二叉排序樹中插入結點插入過程示例 構造二叉排序樹的過程構造示例 二叉排序樹中刪除結點的操作情況一&#xff1a;被刪除結點是葉結點…

【數據庫事務、消息隊列事務、Redis 事務、Spring 事務 詳細分析】

數據庫事務、消息隊列事務、Redis 事務、Spring 事務** 的詳細分析 在分布式系統和應用開發中&#xff0c;事務管理是確保數據一致性和可靠性的關鍵機制。以下是針對 數據庫事務、消息隊列事務、Redis 事務、Spring 事務 的詳細分析&#xff0c;包括原理、特點、適用場景和對比…

kubectl 命令參數詳解與示例

kubectl 命令參數詳解與示例 kubectl 是 Kubernetes 的命令行工具&#xff0c;用于與 Kubernetes 集群交互。下面我將詳細介紹 kubectl 的主要命令參數&#xff0c;并提供相應的使用示例。 一、基礎命令 1. kubectl get - 獲取資源信息 常用參數&#xff1a; -n, --namesp…

#vue中解決異步請求的競態

// composables/useFetchWithoutRace.js import { ref } from vue; import axios from axios;// 定義一個可復用的 Composition 函數&#xff0c;處理帶有競態控制的異步請求 export function useFetchWithoutRace() {// 定義響應式變量 latestRequestId&#xff0c;用于追蹤最…

如何在 Postman 中導入和導出 cURL 命令?

cURL 是一款廣受歡迎的命令行工具&#xff0c;專門用于執行 HTTP 請求。它在 Web 應用或 API 測試中極為實用&#xff0c;讓用戶得以借助在 API 開發者社區廣為流行的成熟語法&#xff0c;直接通過命令行與 API 進行交互。若你需要在多個環境下運行眾多 cURL 命令&#xff0c;可…

用python制作一個貪吃蛇小游戲

文章目錄 效果圖python源碼使用說明效果圖 只需要一百多行python代碼,就能制作一個貪吃蛇小游戲。效果如下: 操作說明: 你可以使用上下左右箭頭鍵來控制蛇的移動方向。蛇吃到食物后會變長,當蛇撞到墻壁或自己的身體時游戲結束。游戲結束后,你可以按 Q 退出游戲,或按 C…

react 15-16-17-18各版本的核心區別、底層原理及演進邏輯的深度解析

一、React 15&#xff08;2016&#xff09; 核心架構&#xff1a;Stack Reconciler&#xff08;棧協調器&#xff09; 工作原理&#xff1a; 同步遞歸渲染&#xff1a;采用深度優先遍歷方式遞歸處理 Virtual DOM&#xff0c;形成不可中斷的調用棧渲染流程&#xff1a;1. 觸發 …

微信小程序pdf預覽

1.示例圖 2.代碼 fileId&#xff1a;要預覽的pdf文件的id viewsFiles(fileId) {wx.showLoading({title: 加載中...});var params {url: "/common/getFile/" fileId ,//后端提供的接口method: "GET",responseType: "arraybuffer",callBack: …

雪花算法生成分布式唯一ID

雪花算法的結構是由時間戳、工作機器ID和序列號構成。要確保全局唯一&#xff0c;必須保證每個節點的機器ID唯一&#xff0c;并且同一毫秒內序列號不重復。在分庫分表的環境下使用雪花算法&#xff0c;機器ID的分配是關鍵。常見的做法是通過分布式系統協調&#xff0c;比如使用…

把手搭建vue前后端管理系統-TAB標簽通過pinia來進行管理(二十六)

目標&#xff1a;通過pinia的store來進行組件狀態的統一管理&#xff0c;這樣大家都可以共用到這個組件的狀態信息&#xff0c;就可以實現組件的聯動 一、添加側邊欄菜單的點擊事件&#xff1a; 1、CommonAside.vue里面添加click的事件 <el-menu-itemv-for"item in …

this(執行上下文)

&#x1f6a9; 這個專欄是一個 JS 進階系列&#xff0c;當前內容為 JS 執行機制&#xff0c;建議按順序閱讀 執行上下文&作用域 詞法環境&變量環境 this&#xff08;上下文對象&#xff09; &#x1f539; 概述 &#x1f30d; 前提概要&#xff1a; 在上文 執行上下文&…

計算機網絡——數據鏈路層的功能

目錄 物理鏈路 邏輯鏈路 封裝成幀&#xff08;組幀&#xff09; 幀定界 透明傳輸 SDU 差錯控制 可靠傳輸 流量控制 介質訪問控制 主機需要實現第一層到第五層的功能&#xff0c;而路由器這種節點只需要實現第一層到第三層的這些功能 假設左邊用戶需要給右邊用戶發送…

計算機網絡 --應用層

計算機網絡 --應用層 一、應用層概述 1. 功能 應用層為應用程序通信提供直接服務&#xff0c;這種服務是用戶能夠直接感知到的數據通信服務。核心功能包括&#xff1a; 文件傳輸&#xff1a;實現不同設備間文件的傳輸操作。訪問管理&#xff1a;對用戶訪問資源等進行管理。電…

企業級Linux服務器初始化優化全流程

實戰指南&#xff1a;企業級Linux服務器初始化優化全流程 本文基于某電商平臺百萬級并發服務器的真實調優案例整理&#xff0c;所有操作均在Rocky Linux8.5驗證通過&#xff0c;不同發行版請注意命令差異 一、服務器安全加固&#xff08;Situation-Task-Action-Result&#xff…

OpenAI流式解析

OpenAI 流式的代碼&#xff1a; 首選一般請使用os.getenv 去讀環境變量的內容 注意使用pip install python-dotenv 的安裝方法 load_dotenv 是這個庫提供的一個函數&#xff0c;用于讀取 .env 文件并將其中定義的鍵值對設置為系統的環境變量。 默認情況下&#xff0c;load_…

數據抓取的緩存策略:減少重復請求與資源消耗

在數據采集領域&#xff0c;爬蟲效率是決定項目成敗的關鍵因素之一。傳統的爬蟲架構往往因請求頻繁、資源消耗較大以及重復抓取等問題&#xff0c;導致效率低下。這些問題不僅拖慢了數據獲取的速度&#xff0c;還可能引發目標服務器的過載風險&#xff0c;甚至導致爬蟲被限制。…

k8s部署argocd

前言 ArgoCD是一個基于Kubernetes的GitOps持續交付工具&#xff0c;應用的部署和更新都可以在Git倉庫上同步實現&#xff0c;并自帶一個可視化界面。本文介紹如何使用GitHelmArgocd方式來實現在k8s中部署和更新應用服務&#xff1b; 安裝Argocd 準備一個k8s集群&#xff0c;然…

【Linux】MAC幀

目錄 一、MAC幀 &#xff08;一&#xff09;IP地址和MAC地址 &#xff08;二&#xff09;MAC幀格式 &#xff08;三&#xff09;MTU對IP協議的影響、 &#xff08;四&#xff09;MTU對UDP協議的影響 &#xff08;五&#xff09;MTU對TCP協議的影響 二、以太網協議 &…

MySQL - 數據庫基礎操作

SQL語句 結構化查詢語言(Structured Query Language)&#xff0c;在關系型數據庫上執行數據操作、數據檢索以及數據維護的標準語言。 分類 DDL 數據定義語言(Data Definition Language)&#xff0c;定義對數據庫對象(庫、表、列、索引)的操作。 DML 數據操作語言(Data Manip…