摘要:給定一個按照升序排列的整數數組,和一個目標值。找出給定目標值在數組中的開始位置和結束位置。你的算法時間復雜度必須是級別。示例輸入輸出示例輸入輸出答案參考
給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。
你的算法時間復雜度必須是 O(log n) 級別。
如果數組中不存在目標值,返回 [-1, -1]。
示例 1:
輸入: nums = [5,7,7,8,8,10], target = 8
輸出: [3,4]
示例 2:
輸入: nums = [5,7,7,8,8,10], target = 6
輸出: [-1,-1]
答案參考:
/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var searchRange = function (nums, target) { let targetIndex = binarySearch(nums, target, 0, nums.length - 1) if (targetIndex == -1) return [-1, -1] let l = targetIndex, r = targetIndex while(l > 0 && nums[l - 1] == target){ l-- } while(r < nums.length - 1 && nums[r + 1] == target){ r++ } return [l, r] }; function binarySearch(arr, val, lo, hi) { if (hi < lo) return -1 let mid = lo + parseInt((hi - lo) / 2) if (val < arr[mid]) { return binarySearch(arr, val, lo, mid - 1) } else if (val > arr[mid]) { return binarySearch(arr, val, mid + 1, hi) } else { return mid } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101793.html
摘要:分布式的管理和當我在談論架構時我在談啥狀態碼詳解無狀態協議和請求支持哪些方法分層協議棧有哪些數據結構運用場景說說你常用的命令為什么要有包裝類面向對象的特征是啥是啥有什么好處系統設計工程在線診斷系統設計與實現索引背后的數據結構及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當我在談論RestFul架構時我在談啥?...
摘要:本文只是簡單理解算法,并不會深入的討論。大部分來自數組部分。如果數組中每個元素都不相同,則返回。示例輸入輸出加給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。盡量減少操作次數。 算法(algorithm),在數學(算學)和計算機科學之中,為任何良定義的具體計算步驟的一個序列,常用于計算、數據處理和自動推理。精確而言,算法是一個表示為有限長列表的有效方法。算法應包含清晰...
摘要:方法返回的數組元素是調用的數組的一個子集。當數組中至少有一個元素調用判定函數返回,它就返回返回一個布爾值,當有一個元素符合條件就返回,否則返回和這兩個方法使用指定的函數將數組元素進行組合,生成單個值。 會改變原數組的方法: push() 在尾部添加一個或多個元素,并返回數組長度 let arr = [1, 2, 3] arr.push(a, b) // 5 console.log...
摘要:知識體系梳理流程圖一維數組數組概述數組是指一組數據的集合,數組中的每個數據被稱作元素。定義打印數組元素方法按照給定的格式打印題目分析通過觀察發現,要實現按照指定格式,打印數組元素操作。按照這種方式,數組循環多圈以后,就完成了數組元素的排序。 知識體系梳理流程圖 showImg(https://segmentfault.com/img/bVXwAi?w=902&h=652); 一維數組 ...
閱讀 3717·2021-10-11 10:59
閱讀 1301·2019-08-30 15:44
閱讀 3479·2019-08-29 16:39
閱讀 2888·2019-08-29 16:29
閱讀 1800·2019-08-29 15:24
閱讀 808·2019-08-29 15:05
閱讀 1264·2019-08-29 12:34
閱讀 2302·2019-08-29 12:19