LeetCode中等題--167.兩數之和II-輸入有序數組

1. 題目

給你一個下標從 1 開始的整數數組 numbers ,該數組已按 非遞減順序排列 ,請你從數組中找出滿足相加之和等于目標數 target 的兩個數。如果設這兩個數分別是 numbers[index1] 和 numbers[index2] ,則 1 <= index1 < index2 <= numbers.length 。

以長度為 2 的整數數組 [index1, index2] 的形式返回這兩個整數的下標 index1 和 index2。

你可以假設每個輸入 只對應唯一的答案 ,而且你 不可以 重復使用相同的元素。

你所設計的解決方案必須只使用常量級的額外空間。

示例 1:
輸入:numbers = [2,7,11,15], target = 9
輸出:[1,2]
解釋:2 與 7 之和等于目標數 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

示例 2:
輸入:numbers = [2,3,4], target = 6
輸出:[1,3]
解釋:2 與 4 之和等于目標數 6 。因此 index1 = 1, index2 = 3 。返回 [1, 3] 。

示例 3:
輸入:numbers = [-1,0], target = -1
輸出:[1,2]
解釋:-1 與 0 之和等于目標數 -1 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

2. 題解

class Solution {public int[] twoSum(int[] numbers, int target) {int left = 0;int right = numbers.length -1;while(true){int s = numbers[left] + numbers[right];if(s == target){return new int[]{left+1,right+1};}if(s > target){right --;} else{left ++;}}}
}

3. 解析

出自:靈茶山艾府-力扣
講解視頻

  1. public int[] twoSum(int[] numbers, int target) 是方法聲明,表示這個名為twoSum的方法接受兩個參數,一個整數數組和一個目標值。該方法返回一個整數數組。

  2. int left = 0; 和 int right = numbers.length -1; 初始化了兩個指針,left和right。左指針(left)最初位于數組的起始位置,右指針(right)最初位于數組的末尾位置。

  3. while(true) {…} 是一個無限循環,用于不斷調整兩個指針的位置直到找到答案為止。

  4. int s = numbers[left] + numbers[right]; 計算了當前兩個指針所指元素的和,即numbers[left]與numbers[right]的和。

  5. if (s == target) return new int[]{left+1, right+1}; 如果當前和等于目標值,那么返回一個包含這兩個數的位置(因為位置是從1開始計數的,而不是從0開始)。

  6. else if (s > target) right–; else left++; 否則,如果當前和大于目標值,右指針向左移動一位;反之,如果當前和小于目標值,左指針向右移動一位。這一步是為了嘗試找到一對更接近目標值的數。

  7. return new int[]{left+1, right+1}; 這個語句永遠不會被執行到,因為在while循環中始終會返回一個新的int[]。它只是為了滿足方法的返回類型聲明。

這段代碼的時間復雜度是O(n),空間復雜度是O(1),其中n是輸入數組的長度。

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

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

相關文章

【C# in .NET】19. 探秘抽象類:具體實現與抽象契約的橋梁

探秘抽象類:具體實現與抽象契約的橋梁 在.NET類型系統中,抽象類是連接具體實現與抽象契約的關鍵橋梁,它既具備普通類的狀態承載能力,又擁有類似接口的行為約束特性。本文將從 IL 代碼結構、CLR 類型加載機制、方法調度邏輯三個維度,全面揭示抽象類的底層工作原理,通過與…

Apache RocketMQ + “太乙” = 開源貢獻新體驗

Apache RocketMQ 是 Apache 基金會托管的頂級項目&#xff0c;自 2012 年誕生于阿里巴巴&#xff0c;服務于淘寶等核心交易系統&#xff0c;歷經多次雙十一萬億級數據洪峰穩定性驗證&#xff0c;至今已有十余年發展歷程。RocketMQ 致力于構建低延遲、高并發、高可用、高可靠的分…

永磁同步電機控制算法--弱磁控制(變交軸CCR-VQV)

一、原理介紹CCR-FQV弱磁控制不能較好的利用逆變器的直流側電壓&#xff0c;造成電機的調速范圍窄、效率低和帶載能力差。為了解決CCR-FQV弱磁控制存在的缺陷&#xff0c;可以在電機運行過程中根據工況的不同實時的改變交軸電壓給定uq?的值&#xff0c;實施 CCR-VQV弱磁控制。…

達夢數據守護集群搭建(1主1實時備庫1同步備庫1異步備庫)

目錄 1 環境信息 1.1 目錄信息 1.2 其他環境信息 2 環境準備 2.1 新建dmdba用戶 2.2 關閉防火墻 2.3 關閉Selinux 2.4 關閉numa和透明大頁 2.5 修改文件打開最大數 2.6 修改磁盤調度 2.7 修改cpufreq模式 2.8 信號量修改 2.9 修改sysctl.conf 2.10 修改 /etc/sy…

電感與電容充、放電極性判斷和電感選型

目錄 一、電感 二、電容 三、電感選型 一、電感 充電&#xff1a;左右-為例 放電&#xff1a;極性相反&#xff0c;左-右 二、電容 充電&#xff1a;左右-為例 放電&#xff1a;左右-&#xff08;與充電極性一致&#xff09; 三、電感選型 主要考慮額定電流和飽和電流。…

新建模范式Mamba——“Selectivity is All You Need?”

目錄 一、快速走進和理解Mamba建模架構 &#xff08;一&#xff09;從Transformer的統治地位談起 &#xff08;二&#xff09;另一條道路&#xff1a;結構化狀態空間模型&#xff08;SSM&#xff09; &#xff08;三&#xff09;Mamba 的核心創新&#xff1a;Selective SSM…

Python實現Word文檔中圖片的自動提取與加載:從理論到實踐

在現代辦公和文檔處理中&#xff0c;Word文檔已經成為最常用的文件格式之一。這些文檔不僅包含文本內容&#xff0c;還經常嵌入各種圖片、圖表和其他媒體元素。在許多場景下&#xff0c;我們需要從Word文檔中提取這些圖片&#xff0c;例如進行內容分析、創建圖像數據庫、或者在…

Kafka、RabbitMQ 與 RocketMQ 高可靠消息保障方案對比分析

Kafka、RabbitMQ 與 RocketMQ 高可靠消息保障方案對比分析 在分布式系統中&#xff0c;消息隊列承擔著異步解耦、流量削峰、削峰填谷等重要職責。為了保證應用的數據一致性和業務可靠性&#xff0c;各大消息中間件都提供了多種高可靠消息保障機制。本文以Kafka、RabbitMQ和Rock…

四足機器人遠程視頻與互動控制的全鏈路方案

隨著機器人行業的快速發展&#xff0c;特別是四足仿生機器人在巡檢、探測、安防、救援等復雜環境中的廣泛部署&#xff0c;如何實現高質量、低延遲的遠程視頻監控與人機互動控制&#xff0c;已經成為制約其應用落地與規模化推廣的關鍵技術難題。 四足機器人常常面臨以下挑戰&a…

把leetcode官方題解自己簡單解釋一下

自用自用&#xff01;&#xff01;&#xff01;leetcode hot 100

hive的sql優化思路-明白底層運行邏輯

一、首先要明白底層map、shuffle、reduce的順序之中服務器hdfs數據文件在內存與存儲之中是怎么演變的&#xff0c;因為hive的性能瓶頸基本在內存&#xff0c;具體參考以下他人優秀文章&#xff1a; 1.Hive SQL底層執行過程詳細剖析 2.Hive JOIN性能調優 二是要明白hive對應的…

驅動隔離芯片在現代工業上的卓越貢獻

在智能時代的精密齒輪中&#xff0c;驅動隔離芯片如同一位精通跨界語言的“安全架構師”&#xff0c;在高壓與低壓、危險與精密的交界處重構秩序。它不生產數據&#xff0c;卻是信息的守門人&#xff1b;不創造能量&#xff0c;卻是電流的馴獸師。從鋼鐵叢林到生命方舟&#xf…

使用MATLAB探索圓周率π的奇妙計算之旅

在數學的璀璨星河中,圓周率π無疑是最耀眼的明星之一。這個看似簡單的無理數蘊含著宇宙的奧秘,吸引著無數科學家和數學愛好者探索其計算方法。今天,我們將使用MATLAB這一強大的科學計算工具,踏上π的計算之旅,體驗從古典算法到現代技巧的奇妙過程。 1. 蒙特卡洛法:隨機的…

React 服務器組件 (RSC)

文章目錄前言1. 什么是服務器組件 (Server Components)?2. 服務器組件的核心規則(1) 異步性 (async/await)(2) 無客戶端交互(3) 渲染限制3. 與客戶端組件的協作組合模式Props 傳遞規則4. 使用場景5. 文件命名約定6. 常見誤區7. 示例代碼服務端組件&#xff08;獲取數據&#x…

如何解決AttributeError: ‘NoneType‘ object has no attribute問題

如何解決AttributeError: ‘NoneType’ object has no attribute問題 問題背景與概述 在 Python 項目開發和調試過程中&#xff0c;經常會碰到這樣一個異常信息&#xff1a; AttributeError: NoneType object has no attribute foo這意味著你嘗試訪問或調用某個對象的屬性&a…

量子計算與AI融合的技術突破與實踐路徑

量子計算與人工智能的融合正開啟一個全新的技術紀元&#xff0c;這種"量智融合"不是簡單的技術疊加&#xff0c;而是多領域、多學科的橫向連接&#xff0c;通過協同創新實現非線性增長。本文將深入探討這一領域的最新進展、技術實現路徑以及行業應用案例。電子-光子-…

xss的利用

目錄 一、XSS的原理和分類 二、常見的XSS標簽和屬性 三、Xss漏洞分類 1. 反射性xss 反射性 XSS 典型攻擊場景 基于 URL 參數的反射性 XSS 基于表單參數的反射性 XSS 利用 HTML 標簽屬性的反射性 XSS 2.存儲型XSS 存儲型XSS的高頻攻擊場景 社交平臺評論區 論壇發帖與…

開源Docmost知識庫管理工具

Docmost知識庫管理工具Docmost是什么核心功能安裝應用報錯鏡像拉取報錯使用Docmost是什么 Docmost 是一個開源的協作 wiki 和文檔軟件。它是 Confluence 和 Notion 的開源替代方案。 核心功能 主開發語言&#xff1a;主要使用 TypeScript 開發&#xff08;性能好&#xff0c;擴…

Elastic Search 8.x 分片和常見性能優化

目錄索引分片寫入原理概念索引寫入流程常見性能優化背景常見性能優化硬件資源優化分片和副本優化索引分片寫入原理 概念 分片&#xff08;shard&#xff09; 分片是將索引數據分割成更小的、可分布式存儲和處理的單元每個索引都由一個或多個分片組成&#xff0c;每個分片都是一…

Java+Vue搭建資產設備全生命周期管理系統,移動端隨時操作,后臺管理高效精準,覆蓋資產全周期,提供完整源碼

前言&#xff1a;在當今企業運營中&#xff0c;資產設備作為重要的生產要素&#xff0c;其高效管理和合理利用直接關系到企業的生產效率、成本控制和競爭力。資產設備全生命周期管理涵蓋了從設備的采購規劃、采購實施、入庫存儲、使用維護到報廢處置的整個過程。為了實現對資產…