1713. 得到子序列的最少操作次數

給你一個數組 target ,包含若干 互不相同 的整數,以及另一個整數數組 arr ,arr 可能 包含重復元素。

每一次操作中,你可以在 arr 的任意位置插入任一整數。比方說,如果 arr = [1,4,1,2] ,那么你可以在中間添加 3 得到 [1,4,3,1,2] 。你可以在數組最開始或最后面添加整數。

請你返回 最少 操作次數,使得 target 成為 arr 的一個子序列。

一個數組的 子序列 指的是刪除原數組的某些元素(可能一個元素都不刪除),同時不改變其余元素的相對順序得到的數組。比方說,[2,7,4] 是 [4,2,3,7,2,1,4] 的子序列(加粗元素),但 [2,4,2] 不是子序列。

示例 1:

輸入:target = [5,1,3], arr = [9,4,2,3,4]
輸出:2
解釋:你可以添加 5 和 1 ,使得 arr 變為 [5,9,4,1,2,3,4] ,target 為 arr 的子序列。
示例 2:

輸入:target = [6,4,8,1,3,2], arr = [4,7,6,2,3,8,6,1]
輸出:3

解題思路

  1. 因為數組 target包含若干互不相同的整數,所以我們可以使用map完成數組元素和下標的映射關系
  2. 在遍歷arr數組的時候,可以根據map找出元素在target對應的下標,因為題目要求添加最少元素使得 target 成為 arr 的一個子序列,因此我們的目標就是在target數組中選出一個最長的子序列(該子序列同時也是arr的子序列),所以最終可以轉化為最長遞增子序列的問題,將arr數組映射成為target的下標數組

代碼

func minOperations(target []int, arr []int) int {n := len(target)m:= make(map[int]int, n)for i, v := range target {m[v]=i}res := []int{}for _, v := range arr {if i2,has := m[v];has {searchInts := sort.SearchInts(res, i2)if searchInts<len(res) {res[searchInts]=i2}else {res=append(res,i2)}}}return n-len(res)}
```**加粗樣式**

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

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

相關文章

CVE-2018-1000136:Electron nodeIntegration繞過漏洞

1周前&#xff0c;研究人員發現一個影響Electron所有版本的漏洞&#xff0c;利用該漏洞可以開啟nodeIntegration&#xff0c;這可能會造成遠程代碼執行。Electron是一個使用JavaScript,HTML和CSS等Web技術創建原生程序的框架&#xff0c;它負責比較難搞的部分&#xff0c;而用戶…

bash腳本 文件_如何使用Bash腳本來管理從AWS S3存儲桶下載和查看文件

bash腳本 文件As you can read in this article, I recently had some trouble with my email server and decided to outsource email administration to Amazons Simple Email Service (SES). 正如您在本文中所讀到的 &#xff0c;最近我的電子郵件服務器遇到了一些麻煩&…

rsync(六)命令中文手冊

rsync(1) rsync(1)名稱rsync - 一個快速、多功能的遠程(和本地)文件拷貝工具摘要Local: rsync [OPTION...] SRC... [DEST]Access via remote shell:Pull: rsync [OPTION...] [USE…

NFS共享存儲服務部署

服務端部署 1、檢查服務器上是否已安裝nfs及rpc&#xff0c;沒有則需要安裝檢查rpm -qa rpcbind nfs-utils安裝&#xff08;已安裝略過&#xff09;yum install -y rpcbind nfs-utils################################################################2、編寫nfs的配置文件cat…

區塊鏈運作機制_什么是區塊鏈及其運作方式?

區塊鏈運作機制If youre interested in technology, theres a good chance you’ve probably heard the terms Bitcoin, Crypto, Ethereum, or even "distributed, decentralized ledgers."如果您對技術感興趣&#xff0c;那么您很有可能已經聽說過比特幣&#xff0c…

敏捷管理之績效考核方案

前段時間&#xff0c;公司簽了年終獎確認。覺得公司發放年終獎完全是憑主觀發放&#xff0c;沒有事實依據&#xff0c;由此產生了對如何發放年終獎的一些想法。 獎金發放作為激勵員工最直接的手段&#xff0c;往往也是讓管理人員最難抉擇的&#xff0c;而且很多公司&#xff0c…

序言

為什么要寫這篇文章&#xff1f; 說起架構&#xff0c;剛入行的新人覺得是高大上的技術&#xff0c;有工作經驗的一些人又覺得是虛無縹緲的東西&#xff0c;不能落實。具體有用沒用&#xff0c;我不給答案&#xff0c;想通過寫這么一個例子來還原場景&#xff0c;讓讀者自己判斷…

kotlin編程語言_Kotlin初學者編程基礎

kotlin編程語言什么是Kotlin&#xff1f; (What is Kotlin?) Kotlin is a programming language developed by Jetbrains, the company behind some of the world’s most popular IDEs like IntelliJ and Pycharm.Kotlin是Jetbrains開發的一種編程語言&#xff0c;該公司是In…

記一個蒟蒻的絕望

感覺現在…… 怎么講&#xff0c;心挺冷的。 今天一月五號了。距離省選&#xff0c;時間好短啊。 我還有那么多東西不懂。甚至聽都沒聽說過。 等到真正去省選的時候&#xff0c;我可能跟現在一樣&#xff0c;什么都不會。 我的名字能不能被看到都不知道。哈&#xff0c;還進隊呢…

671. 二叉樹中第二小的節點

給定一個非空特殊的二叉樹&#xff0c;每個節點都是正數&#xff0c;并且每個節點的子節點數量只能為 2 或 0。如果一個節點有兩個子節點的話&#xff0c;那么該節點的值等于兩個子節點中較小的一個。 更正式地說&#xff0c;root.val min(root.left.val, root.right.val) 總…

CentOS查詢端口占用和清除端口占用的程序

1、查詢端口號占用&#xff0c;根據端口查看進程信息 [rootserver2 ~]# lsof -i:80COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEhttpd 5014 root 3u IPv4 14346 TCP server2:http (LISTEN)2、根據進程號查看進程對應的可執行程序 ps -f -p 進程號# p…

Android基礎夯實--你了解Handler有多少?

概述 對于剛入門的同學來說&#xff0c;往往都會對Handler比較迷茫&#xff0c;到底Handler是個什么樣的東西。當然&#xff0c;可能對于一些有工作經驗的工程師來說&#xff0c;他們也不一定能很準確地描述&#xff0c;我們來看下API的介紹。 Handler是用來結合線程的消息隊列…

spring與springBoot不同之處

( 1&#xff09;遵循“習慣優于配置”的原則&#xff0c;使用Spring Boot只需要很少的配置&#xff0c;大部分的時候我們直接使用默認的配置即可&#xff1b; &#xff08;2&#xff09;項目快速搭建&#xff0c;可以無需配置的自動整合第三方的框架&#xff1b; &#xff08;3…

sketch-a-net_Adobe XD,Sketch,Figma,InVision-如何在2020年選擇最佳設計軟件

sketch-a-netComparing Adobe XD vs Sketch vs Figma vs InVision studio is a very common topic among designers who are looking for the best design software. 在尋求最佳設計軟件的設計師中&#xff0c;比較Adobe XD&#xff0c;Sketch&#xff0c;Figma和InVision Stud…

merge intervals(合并間隔)

Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,10],[15,18],return [1,6],[8,10],[15,18]. 題目沒有說所有間隔的start是依次增加的。所以&#xff0c;為了方便討論&#xff0c;我們要將所有間隔按照start升序排列。因…

劍指 Offer 49. 丑數

我們把只包含質因子 2、3 和 5 的數稱作丑數&#xff08;Ugly Number&#xff09;。求按從小到大的順序的第 n 個丑數。 示例: 輸入: n 10 輸出: 12 解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個丑數。 說明: 1 是丑數。n 不超過1690。 解題思路 使用小根堆&#xf…

維護舊項目_為什么您的舊版軟件難以維護-以及如何處理。

維護舊項目Believe it or not, some organizations still rely on legacy software to carry out operations even though newer and more versatile options are available. We know that “old is gold”, but legacy applications cannot glitter forever. As such, these o…

python--內置函數

內置函數現在python一共為我們提供了68個內置函數&#xff0c;講述過程&#xff1a;一、其他中的12個 &#xff08;一&#xff09;執行 字符串 類型代碼的執行 1 eval執行有意義的字符串 ,有返回值 print(eval(12))print(eval("print(美麗)")) #美麗 2 ex…

Nancy簡單實戰之NancyMusicStore(四):實現購物車

原文:Nancy簡單實戰之NancyMusicStore(四)&#xff1a;實現購物車前言 上一篇&#xff0c;我們完成了商品的詳情和商品的管理&#xff0c;這一篇我們來完成最后的一個購物車功能。 購物車&#xff0c;不外乎這幾個功能&#xff1a;添加商品到購物車&#xff0c;刪除購物車中的商…

劍指 Offer 32 - I. 從上到下打印二叉樹

從上到下打印出二叉樹的每個節點&#xff0c;同一層的節點按照從左到右的順序打印。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 節點總數 < 1000 解題思路 使用隊列實現層序遍歷 代碼 /*** …