?LeetCode周賽 3468. 可行數組的數目——暴力與數學?

?LeetCode周賽 3468. 可行數組的數目——暴力與數學?

在這里插入圖片描述

示例 1:
輸入:original = [1,2,3,4], bounds = [[1,2],[2,3],[3,4],[4,5]]
輸出:2
解釋:
可能的數組為:
[1, 2, 3, 4]
[2, 3, 4, 5]

示例 2:
輸入:original = [1,2,3,4], bounds = [[1,10],[2,9],[3,8],[4,7]]
輸出:4
解釋:
可能的數組為:
[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]
[4, 5, 6, 7]

提示:
2 <= n == original.length <= 105
1 <= original[i] <= 109
bounds.length == n
bounds[i].length == 2
1 <= bounds[i][0] <= bounds[i][1] <= 109

題解:

暴力法+數學法 具體見代碼注釋

代碼:

// 暴力  超時
// 思路為一旦copy[0]確定 則copy數組即確定 因各元素間距由original可提前算出
// 故僅對copy[0]的值進行模擬 從u0遍歷到v0 
// 同時判斷按照上述情況得到的copy數組如copy[1] copy[2]等是否滿足他們的ui和vi限制即可
// 即由于各元素間距固定 故多個需要遍歷的變量可以變為進遍歷單一變量copy[0] 再加以對所有可能的數組進行驗證即可
class Solution1 {public int countArrays(int[] original, int[][] bounds) {int len = original.length;int res = 0;int[] next_len = new int[len];for(int i=1;i<len;i++){next_len[i] = original[i] - original[i-1];}int L = bounds[0][0];int R = bounds[0][1];while(L <= R){int[] temp = new int[len];temp[0] = L;for(int i=1;i<len;i++){temp[i] = temp[i-1] + next_len[i];}boolean flag = true;for(int i=1;i<bounds.length;i++){if(temp[i] >= bounds[i][0] && temp[i] <= bounds[i][1]){continue;}else{flag = false;break;}}if(flag){res++; }L++;}return res;}
}// 數學 算出copy[0]的實際可取值范圍即為關鍵
// 公式化簡可知 copy[i] = copy[0] + di 即copy的任一元素均可由copy[0]推演得到
// 故 ui <= copy[i] <= vi ---> ui-di <= copy[0] <= vi-di
// 則上述式子即為copy[0]的取值范圍限制 對所有情況的i均算出 取交集即可
class Solution {public int countArrays(int[] original, int[][] bounds) {int len = original.length;// 先定義copy[0]取值范圍為本身的限制 即此時為最寬泛情況// 即先進行u0-d0 <= copy[0] <= v0-d0第一層限制int L = bounds[0][0];int R = bounds[0][1];// 后面遍歷bounds 依次得到ui和vi 對copy[0]區間進行縮小for(int i=1;i<len;i++){int di = original[i] - original[0];int ui = bounds[i][0];int vi = bounds[i][1];L = Math.max(L,ui-di);R = Math.min(R,vi-di);}// 若最后得到為負 則代表無符合題目條件的數組 故返回0return R-L+1 > 0 ? R-L+1 : 0;}
}

結果:

在這里插入圖片描述

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

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

相關文章

AF3 squeeze_features函數解讀

AlphaFold3 data_transforms 模塊的 squeeze_features 函數的作用去除 蛋白質特征張量中不必要的單維度&#xff08;singleton dimensions&#xff09;和重復維度&#xff0c;以使其適配 AlphaFold3 預期的輸入格式。 源代碼&#xff1a; def squeeze_features(protein):&qu…

【打卡d4】日期類--分組輸入

第一題&#xff1a;根據一年中的第 n 天計算日期 &#x1f4cc; 知識點 判斷閏年&#xff1a; 閏年條件&#xff1a;能被 400 整除&#xff0c;或 能被 4 整除但不能被 100 整除。平年&#xff1a;2 月 28 天&#xff1b;閏年&#xff1a;2 月 29 天。 累加月份&#xff0c;找…

JAVA(5)-基礎概念

*固定格式 一.注釋和關鍵字 關鍵字&#xff1a;被賦予特定關系的詞 字母全部小寫&#xff0c;如class表示一個類 二.字面量 1.字面量類型 *字符串里面的類型是一句話&#xff0c;用雙引號 字符里面的類型只有一個字或字母 null只能用字符串的方式打印 2.制表符 \t 至少補…

本地部署Navidrome個人云音樂平臺隨時隨地暢聽本地音樂文件

文章目錄 前言1. 安裝Docker2. 創建并啟動Navidrome容器3. 公網遠程訪問本地Navidrome3.1 內網穿透工具安裝3.2 創建遠程連接公網地址3.3 使用固定公網地址遠程訪問 前言 今天我要給大家安利一個超酷的私有化音樂神器——Navidrome&#xff01;它不僅讓你隨時隨地暢享本地音樂…

C++ 中的RAII(資源獲取及初始化)

C 中的RAII(資源獲取即初始化) RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C中一種重要的編程范式&#xff0c;全稱為“資源獲取即初始化”。它是一種通過對象生命周期管理資源&#xff08;如內存、文件句柄、網絡連接等&#xff09;的技術&#x…

藍橋杯嵌入式組第七屆省賽題目解析+STM32G431RBT6實現源碼

文章目錄 1.題目解析1.1 分而治之&#xff0c;藕斷絲連1.2 模塊化思維導圖1.3 模塊解析1.3.1 KEY模塊1.3.2 ADC模塊1.3.3 IIC模塊1.3.4 UART模塊1.3.5 LCD模塊1.3.6 LED模塊1.3.7 TIM模塊 2.源碼3.第七屆題目 前言&#xff1a;STM32G431RBT6實現嵌入式組第七屆題目解析源碼&…

DeepSeek技術名詞全解析:一場屬于中國AI的“覺醒時刻”

在2025年的人工智能浪潮中&#xff0c;一個名為DeepSeek的中國團隊&#xff0c;用一系列技術突破改寫了全球AI競爭的敘事。從“頓悟時刻”到“群體策略優化”&#xff0c;從“冷啟動”到“長鏈思考”&#xff0c;這些晦澀的技術術語背后&#xff0c;是一場關乎人類智能邊界的革…

【Go語言圣經1.1】

目標 學習Go 的編譯方式、包的組織方式以及工具鏈的統一調用方式 概念與定義 package Go 語言通過包來組織代碼。包類似于其它語言的庫librarries或模塊modules&#xff0c;每個包通常對應一個目錄&#xff0c;目錄中的所有 .go 文件都屬于同一個包。特殊的 main 包 : 當代碼…

主流大語言模型中Token的生成過程本質是串行的

主流大語言模型中Token的生成過程本質是串行的 flyfish 1. 串行生成 自回歸模型的核心邏輯&#xff1a; 大模型&#xff08;如GPT-2&#xff09;采用自回歸架構&#xff0c;每個Token的生成必須基于已生成的完整歷史序列。例如&#xff0c;生成“今天天氣很好”時&#xff1a…

基于PySide6的CATIA零件自動化著色工具開發實踐

引言 在汽車及航空制造領域&#xff0c;CATIA作為核心的CAD設計軟件&#xff0c;其二次開發能力對提升設計效率具有重要意義。本文介紹一種基于Python的CATIA零件著色工具開發方案&#xff0c;通過PySide6實現GUI交互&#xff0c;結合COM接口操作實現零件著色自動化。該方案成…

Python——計算機網絡

一.ip 1.ip的定義 IP是“Internet Protocol”的縮寫&#xff0c;即“互聯網協議”。它是用于計算機網絡通信的基礎協議之一&#xff0c;屬于TCP/IP協議族中的網絡層協議。IP協議的主要功能是負責將數據包從源主機傳輸到目標主機&#xff0c;并確保數據能夠在復雜的網絡環境中正…

Python實例:PyMuPDF實現PDF翻譯,英文翻譯為中文,并按段落創建中文PDF

基于PyMuPDF與百度翻譯的PDF翻譯處理系統開發:中文亂碼解決方案與自動化排版實踐 一 、功能預覽:將英文翻譯為中文后創建的PDF 二、完整代碼 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

xunruicms失敗次數已達到5次,已被禁止登錄怎么處理?

針對遇到的“xunruicms失敗次數已達到5次&#xff0c;已被禁止登錄”的問題以下是幾種處理方法&#xff1a; 開啟開發者模式&#xff1a; 您可以開啟開發者模式來忽略賬號的禁止登錄限制。具體操作步驟如下&#xff1a; 訪問迅睿CMS的官方文檔&#xff0c;找到如何開啟開發者模…

復現 MODEST 機器人抓取透明物體 單目 ICRA 2025

MODEST 單目透明物體抓取算法&#xff0c;來自ICRA 2025&#xff0c;本文分享它的復現過程。 輸入單個視角的RGB圖像&#xff0c;模型需要同時處理深度和分割任務&#xff0c;輸出透明物體的分割結果和場景深度預測。 論文地址&#xff1a;Monocular Depth Estimation and Se…

新手學習爬蟲的案例

首先你的電腦上肯定已經安裝了python,沒安裝的去官網安裝,我使用的是Pycharm作為操作的IDE 環境準備 安裝必要的庫 爬蟲需要用到requests和beautifulsoup4 使用命令行或者終端運行下面的命令 pip install requests beautifulsoup4 -i https://mirrors.aliyun.com/pypi/sim…

Octave3D 關卡設計插件

課程參考鏈接 這位大佬有在視頻合集中有詳細的講解&#xff0c;個人體驗過&#xff0c;感覺功能很強大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab資源管理 第一步 在場景中創建一個空物體…

【Transformer優化】Transformer的局限在哪?

自2017年Transformer橫空出世以來&#xff0c;它幾乎重寫了自然語言處理的規則。但當我們在享受其驚人的并行計算能力和表征能力時&#xff0c;是否真正理解了它的局限性&#xff1f;本文將深入探討在復雜度之外被忽視的五大核心缺陷&#xff0c;并試圖在數學維度揭示其本質。 …

SpringBoot(一)--搭建架構5種方法

目錄 一、?Idea從spring官網下載打開 2021版本idea 1.打開創建項目 2.修改pom.xml文件里的版本號 2017版本idea 二、從spring官網下載再用idea打開 三、Idea從阿里云的官網下載打開 ?編輯 四、Maven項目改造成springboot項目 五、從阿里云官網下載再用idea打開 Spri…

Python爬蟲實戰:一鍵采集電商數據,掌握市場動態!

電商數據分析是個香餑餑&#xff0c;可市面上的數據采集工具要不貴得嚇人&#xff0c;要不就是各種廣告彈窗。干脆自己動手寫個爬蟲&#xff0c;想抓啥抓啥&#xff0c;還能學點技術。今天咱聊聊怎么用Python寫個簡單的電商數據爬蟲。 打好基礎&#xff1a;搞定請求頭 別看爬蟲…

樂鑫打造全球首款 PSA Certified Level 2 RISC-V 芯片

樂鑫科技 (688018.SH) 榮幸宣布 ESP32-C6 于 2025 年 2 月 20 日獲得 PSA Certified Level 2 認證。這一重要突破使 ESP32-C6 成為全球首款基于 RISC-V 架構獲此認證的芯片&#xff0c;體現了樂鑫致力于為全球客戶提供安全可靠、性能卓越的物聯網解決方案的堅定承諾。 PSA 安全…