【找出滿足差值條件的下標 I】python

目錄

暴力題解

優化:滑動窗口+維護大小值

暴力題解

class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:n=len(nums)for i in range(n):for j in range(n-1,-1,-1):if abs(i-j)>=indexDifference and abs(nums[i]-nums[j])>=valueDifference:return [i,j]return [-1,-1]

優化:滑動窗口+維護大小值

簡單來說,i和j是滑動窗口的兩邊,根據不等式1,我們可以建立i和j之間的關系(如果數組排序后,我們可以建立值與值作為滑動窗口的兩邊,但此題不能排序),?

?接著,我們需要滑動,可以從左到右也可以從右到左滑動

接著是最核心的部分,因為我們需要比較值的大小,所以我們需要比較滑動窗口兩邊的大小關系,并返回下標,根據不等式1,我們可以推想,如果滑動窗口向右滑動的話,i在左邊,j在右邊,我們比較的應該是j和(i左邊的一大段),所以,我們可以記錄i左邊的max和min值,當滑動的過程中,出現min-nums[j]或者max-nums[j]的關系符合不等式2的時候,就可以返回下標[min,j]或者[max,j]

代碼如下(我這里用的是從右到左):

相應的就是比較i和(j右邊的一大段),倒著遍歷即可。

class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:n=len(nums)if n>indexDifference:mn=n-1mx=n-1#i左,j右for j in range(n-1,-1,-1):i=j-indexDifferenceif nums[j]>nums[mx]:mx=jif nums[j]<nums[mn]:mn=jif abs(nums[mx]-nums[i])>=valueDifference:return [mx,i]  if abs(nums[i]-nums[mn])>=valueDifference:return [mn,i]if i==0:return [-1,-1]        return [-1,-1]  

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

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

相關文章

海康威視NVR通過ehome協議接入視頻監控平臺,視頻瀏覽顯示3011超時錯誤的問題解決,即:The request timeout! 【3011】

目錄 一、問題描述 二、問題分析 2.1 初步分析 2.2 查看日志 2.3 問題驗證 1、查看防火墻 2、查看安全組 3、問題原因 三、問題解決 3.1 防火墻開放相關端口 3.2 安全組增加規則 3.3 測試 1、TCP端口能夠聯通的情況 2、TCP端口不能夠聯通的情況 四、驗證 五、云…

「51媒體」如何與媒體建立良好關系?

傳媒如春雨&#xff0c;潤物細無聲&#xff0c;大家好&#xff0c;我是51媒體網胡老師。 與媒體建立良好關系對于企業或個人來說都是一項重要的公關活動。 了解媒體&#xff1a;研究媒體和記者的興趣&#xff0c;提供相關且有價值的信息。 建立聯系&#xff1a;通過專業的方式…

牛客NC324 下一個更大的數(三)【中等 雙指針 Java/Go/PHP/C++】參考lintcode 52 · 下一個排列

題目 題目鏈接&#xff1a; https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199 思路 第一步&#xff1a;獲取數字上每一個數&#xff0c;組成數組arr 第二步&#xff1a;利用“下一個排列” 問題解題方法來繼續作答&#xff0c;步驟&#xff1a;利用lintc…

C++進階之路:何為拷貝構造函數,深入理解淺拷貝與深拷貝(類與對象_中篇)

?? 歡迎大家來訪Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭?&#xff5e;?? &#x1f31f;&#x1f31f; 歡迎各位親愛的讀者&#xff0c;感謝你們抽出寶貴的時間來閱讀我的文章。 我是Srlua小謝&#xff0c;在這里我會分享我的知識和經驗。&am…

PostgreSQL基礎(三):PostgreSQL的基礎操作

文章目錄 PostgreSQL的基礎操作 一、用戶操作 二、權限操作 三、操作任務

DRM驅動(五)之drm_atomic_state

上節講到《DRM驅動&#xff08;四&#xff09;之ADD_FB》調用drmModeAddFB創建drm_framebuffer。然后通過 drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &map); vaddr mmap(0, create.size, PROT_READ | PROT_WRITE,MAP_SHARED, fd, map.offset); 將物理地址map到用戶空間后…

Python中list遍歷的幾種方式之沒有好與不好,只有合適不合適

Python中list遍歷的幾種方式 引言 Python是一種動態、解釋型的高級編程語言&#xff0c;以其簡潔、易讀的語法而廣受歡迎。在Python中&#xff0c;list是一種非常重要的數據結構&#xff0c;它允許存儲一系列的元素&#xff0c;這些元素可以是任何類型。遍歷list是處理數據的…

nginx的Connection refused

問題描述 nginx的錯誤日志中突然出現大量的的Connection refused問題&#xff0c;日志如下&#xff1a; 2020/03/19 09:52:53 [error] 20117#20117: *7403411764 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server:…

解決CLion調試時無法顯示變量值的問題

1 問題描述 使用CLion的時候&#xff0c;調試時無法顯示變量的值&#xff0c;例如&#xff1a; 圖來自StackOverflow。 2 解決辦法 可以嘗試切換調試器解決&#xff0c;在Linux下&#xff0c;CLion支持GDB和LLDB&#xff0c;如果GDB不行&#xff0c;可以切換到LLDB。 切換方…

醫院信息化IT監控一體化運維實踐

作者: 曉風 在醫療信息化日益發展的今天&#xff0c;醫院數據中心的運維工作顯得尤為重要。為了確保醫療系統的穩定運行&#xff0c;保障患者數據的安全與完整&#xff0c;我院在信息化IT監控一體化運維方面進行了深入的探索和實踐。 一、背景與挑戰 我院的機房設備規模已有50…

主動歸檔存儲的策略研討

在媒體與娛樂&#xff08;M&E&#xff09;行業中&#xff0c;主動存檔策略對于應對內容的持續需求增長、控制存儲成本膨脹以及實現檔案內容的貨幣化至關重要。以下是對此策略的深入分析&#xff1a; ### 持續的內容需求帶來的挑戰 M&E企業面臨著巨大的挑戰&#xff1…

【Spring】SSM整合_入門代碼實現

1. Maven依賴 在pom.xml中添加SSM框架的依賴 <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.x</version> </dependency>…

軟件杯 題目: 基于深度學習的疲勞駕駛檢測 深度學習

文章目錄 0 前言1 課題背景2 實現目標3 當前市面上疲勞駕駛檢測的方法4 相關數據集5 基于頭部姿態的駕駛疲勞檢測5.1 如何確定疲勞狀態5.2 算法步驟5.3 打瞌睡判斷 6 基于CNN與SVM的疲勞檢測方法6.1 網絡結構6.2 疲勞圖像分類訓練6.3 訓練結果 7 最后 0 前言 &#x1f525; 優…

為什么單片機不能直接驅動繼電器和電磁閥

文章是瑞生網轉載&#xff0c;PDF格式文章下載&#xff1a; 為什么單片機不能直接驅動繼電器和電磁閥.pdf: https://url83.ctfile.com/f/45573183-1247189072-10b6d1?p7526 (訪問密碼: 7526)

java-數組內存分配

在 Java 中&#xff0c;數組是一種基本數據結構&#xff0c;用于存儲一系列相同類型的數據。在內存中&#xff0c;數組分配是一塊連續的內存空間&#xff0c;用于存儲數組中的所有元素。本篇文章將詳細解釋 Java 中數組的內存分配&#xff0c;包括數組的聲明、創建、內存模型以…

memcpy的使?和模擬實現

目錄 一&#xff1a;memcpy的使? memcpy的使?的代碼 二&#xff1a;memcpy函數的模擬實現: memcpy和strcpy的區別 用途&#xff1a; 安全性&#xff1a; 數據類型&#xff1a; 性能&#xff1a; 在字符串中的用法示例&#xff1a; memcpy: strcpy 一&#xff1a;…

Ajax面試題精選及參考答案(3萬字長文)

目錄 什么是Ajax,它的核心原理是什么? Ajax應用程序的優勢有哪些? Ajax最大的特點是什么?

Science 基于尖峰時序編碼的模擬神經觸覺系統,可實現動態對象分類

快速處理和有效利用手與物體交互過程中產生的動態觸覺信號&#xff08;例如觸摸和抓握&#xff09;對于觸覺探索和靈巧的物體操作至關重要。將電子皮膚&#xff08;e-skins&#xff09;推進到模仿自然觸覺的水平&#xff0c;是恢復截肢者和癱瘓患者喪失的功能的可行解決方案&am…

實現地圖上展示坐標時,不要全部展示、只展示幾個距離相對較大marker點位,隨著地圖放大再全部展示出來。

比例尺級別地面分辨率 &#xff08;米/像素&#xff09;比例尺0156543.031&#xff1a;591658700.82178271.5151&#xff1a;295829350.4239135.75751&#xff1a;147914675.2319567.878751&#xff1a;73957337.649783.9393751&#xff1a;36978668.854891.9696881&#xff1a…

電機控制系列模塊解析(22)—— 零矢量剎車

一、零矢量剎車 基本概念 逆變器通常采用三相橋式結構&#xff0c;包含六個功率開關元件&#xff08;如IGBT或MOSFET&#xff09;&#xff0c;分為上橋臂和下橋臂。每個橋臂由兩個反并聯的開關元件組成&#xff0c;上橋臂和下橋臂對應于電機三相繞組的正負端。正常工作時&…