針對CSP-J/S的每日一練:Day 11

一、審題

題目描述

給定兩個大小分別為 m m m n n n 的正序(從小到大)數組 n u m s 1 nums1 nums1 n u m s 2 nums2 nums2。請你找出并返回這兩個正序數組的中位數。
算法的時間復雜度應該為 O ( l o g ( m + n ) ) O(log (m+n)) O(log(m+n))

示例 1

輸入:nums1 = [1,3], nums2 = [2]
輸出:2.00000
解釋:合并數組 = [1,2,3] ,中位數 2

示例 2

輸入:nums1 = [1,2], nums2 = [3,4]
輸出:2.50000
解釋:合并數組 = [1,2,3,4] ,中位數 (2 + 3) / 2 = 2.5

提示

nums1.length == m
nums2.length == n
0 <= m <= 1000
0 <= n <= 1000
1 <= m + n <= 2000
-106 <= nums1[i], nums2[i] <= 106

信息

通過次數
1 M 1M 1M
提交次數
2.5 M 2.5M 2.5M
通過率
41.8 % 41.8\% 41.8%

二、思路

1. 分析流程

整體流程圖

2. 嘗試代碼

class Solution {
public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int m = nums1.size(), n = nums2.size();if (m > n) {  // 確保 m <= nreturn findMedianSortedArrays(nums2, nums1);}int iMin = 0, iMax = m;while (iMin <= iMax) {int i = (iMin + iMax) / 2;int j = (m + n + 1) / 2 - i;if (j != 0 && i != m && nums2[j - 1] > nums1[i]) {iMin = i + 1; // i 太小了,需要右移} else if (i != 0 && j != n && nums1[i - 1] > nums2[j]) {iMax = i - 1; // i 太大了,需要左移} else { // 此時 i 是我們需要的int maxLeft;  // maxLeft 表示左半部分的最大值if (i == 0) {maxLeft = nums2[j - 1];} else if (j == 0) {maxLeft = nums1[i - 1];} else {maxLeft = max(nums1[i - 1], nums2[j - 1]);}if ((m + n) % 2 == 1) {  // 如果是奇數,中位數就是左半部分的最大值return maxLeft;}int minRight;  // minRight 表示右半部分的最小值if (i == m) {minRight = nums2[j];} else if (j == n) {minRight = nums1[i];} else {minRight = min(nums2[j], nums1[i]);}return (maxLeft + minRight) / 2.0;  // 如果是偶數,就是左半部分的最大值和右半部分的最小值的均值}}return 0.0;}
};

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

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

相關文章

初學vue3與ts:路由跳轉帶參數

index-router <!-- 路由跳轉 --> <template><div><div class"title-sub flex"><div>1、用router-link跳轉帶參數id1&#xff1a;</div><router-link to"./link?id1"><button>點我跳轉</button>&…

maven 將Jar包安裝到本地倉庫

window系統&#xff1a; 注意事項&#xff1a;在windows中&#xff0c;使用mvn指令將jar安裝到本地倉庫時&#xff0c;一定要將相關資源使用“"”包裹上&#xff0c;不然會報下面的錯&#xff1a; mvn install:install-file "-DfileD:\BaiduNetdiskDownload\qianzixi…

管道在Vue和Angular中的作用及React的替代方案

管道在Vue和Angular中的作用及React的替代方案 前言管道起源管道特點 前端中管道概念和作用概念作用 React關于管道的替代方案Vue和Angular管道的區別 前言 本文主要講解管道在Vue和Angular中有哪些作用以及React對于管道概念的替代方案是什么。 管道起源 計算機中的Pipline…

PHP5.3 + Apache2.2 + Xdebug2.1.2環境并集成至PHPStrom全流程(解決使用最好的語言前的痛點問題)

文章目錄 問題背景安裝流程PHP安裝配置PHPApache安裝及配置PHPStrom集成PHP環境進行PHP開發 問題背景 由于公司陳舊項目的重新啟動&#xff0c;現需要對該項目開發微信登錄模塊&#xff0c;本人是寫 Java 的&#xff0c;但本著程序員終身學習、不懼新事物的特點&#xff0c;現…

NX二次開發UF_CSYS_set_wcs_display 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs_display Defined in: uf_csys.h int UF_CSYS_set_wcs_display(int display_status ) overview 概述 Set display of work coordinate system. 展示工作坐標系。 …

Android 11.0 默認開啟USB調試功能

Android 11.0 默認開啟USB調試功能 近來收到項目反饋需求想要默認開啟USB調試功能&#xff0c;默認開啟USB調試功能主要是在UsbDebuggingActivity.java文件中實現&#xff0c;具體修改參照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/and…

狀態模式 (State Pattern)

定義 狀態模式&#xff08;State Pattern&#xff09;是一種行為型設計模式&#xff0c;它允許一個對象在其內部狀態改變時改變它的行為。這種模式將每個狀態的行為封裝到對應的狀態類中&#xff0c;使得上下文&#xff08;Context&#xff09;的行為隨著其內部狀態的改變而改…

公眾號違禁詞及違規行為匯總

1、微信官方發布《微信公眾平臺關于清理集贊行為的公告》&#xff0c;全面禁止公眾賬號“集贊”玩法。 微信對違反微信用戶協議和公眾平臺協議的公眾號處理機制是&#xff0c;公眾號累計發現一次有集贊行為&#xff0c;封號7天&#xff1b;公眾號累計發現二次有集贊行為&#…

面試:ShardingSphere問題

文章目錄 什么是ShardingSphere&#xff0c;它的主要功能是什么&#xff1f;ShardingSphere的核心模塊有哪些&#xff1f;他們是如何工作的&#xff1f;ShardingSphere 的讀寫分離是如何實現的&#xff1f;如何配置ShardingSphere的數據分片策略&#xff1f;ShardingSphere支持…

【運維面試100問】(六)buffer和cache的區別

本站以分享各種運維經驗和運維所需要的技能為主 《python零基礎入門》&#xff1a;python零基礎入門學習 《python運維腳本》&#xff1a; python運維腳本實踐 《shell》&#xff1a;shell學習 《terraform》持續更新中&#xff1a;terraform_Aws學習零基礎入門到最佳實戰 《k8…

【Linux】匿名管道+進程池

文章目錄 前置知識一、管道的原理二、管道的特性三、管道的接口四、使用管道實現簡單的進程池解決進程池的一個小問題 前置知識 一個進程在創建時&#xff0c;會默認打開三個文件&#xff0c;分別是&#xff1a;stdin&#xff0c;stdout&#xff0c;stderr 進程中有一個維護進…

1linux

Is查看目錄內容 ls -ahil a表示全部&#xff0c;h表示文件大小以人類易讀的形式給出&#xff0c;i表示索引節點&#xff0c;l表示長列表形式。 cd 切換目錄 touch 創建文件 mkdir 創建目錄 mkdir Makedirectory&#xff0c;創建目錄&#xff0c;-p指定路徑&#xff0c;-m指定權…

炫我出席數字光影工作室專業建設論壇,受聘為專家委員會委員!

11月18日&#xff0c;炫我科技受邀參加在北京深瀾AI空間舉辦的2023數字光影工作室專業建設論壇。本次活動由北京市新媒體技師學院主辦、北京瀾景科技有限公司協辦&#xff0c;私有云售前技術工程師龔琛代表我司出席&#xff0c;并受聘為新媒體技師學院數字光影工作室專家委員會…

Mysql基礎操作(命令行)

文章目錄 Mysql基礎操作&#xff08;命令行&#xff09;背景創建數據庫選擇數據庫查看所有表查看表結構向表插入數據插入第一條插入第二條插入第三條 查詢表數據修改表數據刪除表數據 Mysql基礎操作&#xff08;命令行&#xff09; 背景 docker安裝mysql8&#xff0c;映射本地…

ubuntu下,PX4使用 upload 下載代碼沒反應

可能原因&#xff0c;沒有串口權限 sudo chmod 777 /dev/ttyACM0開啟串口權限&#xff0c;本次問題解決。

GTC2023全球流量大會蓄勢待發,菊風在7B57展位等你!

第六屆 GTC 全球流量大會&#xff08;以下簡稱 GTC2023&#xff09;將于12月5日- 6日&#xff0c;在深圳福田會展中心7&#xff06;8號館舉辦。 據悉&#xff0c;本屆大會將是歷屆以來規模最大、參與人數最多、跨境出海資源最豐富的一次行業盛會。7、8 號館共 15000 平方米&am…

計算機組成原理-磁盤存儲器

文章目錄 總覽外存儲器磁盤存儲器磁盤的性能指標磁盤地址磁盤的工作過程磁盤陣列 總結 總覽 外存儲器 磁盤存儲器 寫是利用電流產生磁場從而寫磁盤 讀是利用載磁體移動時產生的電場從而得到數據 磁性材質易受外界磁場干擾 下圖中 載磁體上N S的前后順序代表對應存儲二進制的比…

【深度學習】卷積神經網絡(CNN)的參數優化方法

著名&#xff1a; 本文是從 Michael Nielsen的電子書Neural Network and Deep Learning的深度學習那一章的卷積神經網絡的參數優化方法的一些總結和摘錄&#xff0c;并不是我自己的結論和做實驗所得到的結果。我想Michael的實驗結果更有說服力一些。本書在github上有中文翻譯的…

【不同請求方式在springboot中對應的注解】

GET 請求方法&#xff1a;用于獲取資源。使用 GetMapping 注解來處理 GET 請求。 示例代碼&#xff1a; RestController public class MyController {GetMapping("/resource")public ResponseEntity<String> getResource() {// 處理 GET 請求邏輯} }POST 請求方…

喜訊!云起無垠成為國家信息安全漏洞庫(CNNVD)技術支撐單位

近日&#xff0c;云起無垠憑借其在漏洞挖掘、漏洞檢測以及漏洞修復等領域的卓越表現&#xff0c;榮獲“國家信息安全漏洞庫&#xff08;CNNVD&#xff09;技術支撐單位等級證書&#xff08;三級&#xff09;”&#xff0c;正式成為CNNVD技術支撐單位。 中國國家信息安全漏洞庫&…