成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在排序數組中查找元素的第一個和最后一個位置

開發 前端
給定一個按照升序排列的整數數組 nums ,和一個目標值 target 。找出給定目標值在數組中的開始位置和結束位置。

[[432713]]

給定一個按照升序排列的整數數組 nums ,和一個目標值 target 。找出給定目標值在數組中的開始位置和結束位置。

你的算法時間復雜度必須是 O(logn)級別。

如果數組中不存在目標值,返回 [-1, -1] 。

示例 1:

  1. 輸入: nums = [5,7,7,8,8,10], target = 8 
  2. 輸出: [3,4] 

示例 2:

  1. 輸入: nums = [5,7,7,8,8,10], target = 6 
  2. 輸出: [-1,-1] 

解答一:findIndex、lastIndexOf

findIndex() 方法返回數組中滿足提供的測試函數的第一個元素的索引。若沒有找到對應元素則返回-1。

lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或變量)在數組中的最后一個的索引,如果不存在則返回 -1。

解答二:二分查找

  1. let searchRange = function(nums, target) { 
  2.     return [leftSearch(nums, target), rightSearch(nums, target)] 
  3.  
  4. let leftSearch = function(nums, target) { 
  5.     let low = 0,  
  6.         high = nums.length - 1, 
  7.         mid 
  8.     while (low <= high) { 
  9.         mid = Math.floor((low+high)/2) 
  10.         if (nums[mid] < target) { 
  11.             low = mid + 1 
  12.         } else if (nums[mid] > target) { 
  13.             high = mid - 1 
  14.         } else if (nums[mid] === target) { 
  15.             // 這里不返回,繼續收縮左側邊界 
  16.             high = mid - 1 
  17.         } 
  18.     } 
  19.     // 最后檢查 low 是否越界或命中 
  20.     if (low >= nums.length || nums[low] != target) 
  21.         return -1 
  22.     return low 
  23.  
  24.  
  25. let rightSearch = function (nums, target) { 
  26.     let low = 0,  
  27.         high = nums.length - 1, 
  28.         mid 
  29.     while (low <= high) { 
  30.         mid = Math.floor((low+high)/2) 
  31.         if (nums[mid] < target) { 
  32.             low = mid + 1 
  33.         } else if (nums[mid] > target) { 
  34.             high = mid - 1 
  35.         } else if (nums[mid] === target) { 
  36.             // 這里不返回,繼續收縮右側邊界 
  37.             low = mid + 1 
  38.         } 
  39.     } 
  40.     // 最后檢查 high 是否越界或命中 
  41.     if (high < 0 || nums[high] != target) 
  42.         return -1 
  43.     return high 

復雜度分析:

  • 時間復雜度:O(logn)
  • 空間復雜度:O(1)

 

leetcode:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/

 

責任編輯:武曉燕 來源: 三分鐘學前端
相關推薦

2021-12-13 11:31:36

排序數組數據結構算法

2024-03-18 09:50:18

Selenium元素Python

2024-06-06 08:46:26

彈性布局元素瀏覽器

2020-11-13 07:08:51

Spring Boot應用Spring

2010-07-05 17:00:39

SQL server

2013-10-30 22:10:28

Clouda程序

2022-10-17 10:28:05

Web 組件代碼

2023-09-21 22:43:17

Django框架

2021-04-07 13:38:27

Django項目視圖

2010-07-30 14:58:06

Flex應用

2011-03-21 14:24:13

Debian 6

2013-01-14 09:44:58

JavaScriptJSJS框架

2012-02-08 11:15:38

HibernateJava

2011-03-03 21:04:08

bug程序員

2021-08-26 07:43:44

vectorerase錯誤

2014-07-21 10:25:12

ENode開發論壇

2011-06-24 13:38:32

QT 編譯 安裝

2019-12-31 08:00:00

DebianLinuxApple Swift

2021-11-02 08:00:00

機器學習API技術

2025-05-28 09:04:00

谷歌AI搜索
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 蜜桃av一区二区三区 | 国产成人99久久亚洲综合精品 | 性一交一乱一透一a级 | 国产精品视频久久久久 | 永久精品 | 免费视频一区二区 | 一a一片一级一片啪啪 | av乱码 | 日本不卡一二三 | 日韩aⅴ在线观看 | 一区二区中文字幕 | 国产精品久久久久久妇女 | 国产精品日日摸夜夜添夜夜av | 久久蜜桃av一区二区天堂 | 天天狠狠 | 久久亚洲国产 | 欧美精品一区免费 | 日韩精彩视频 | 欧美精品91爱爱 | 亚洲一区二区在线 | 午夜精品一区 | 欧美男人亚洲天堂 | a级毛片免费高清视频 | 一区日韩 | 四虎永久影院 | 国产一区二区在线免费观看 | 国产精品免费一区二区三区四区 | 久久一日本道色综合久久 | 毛片在线免费 | 天天干天天色 | av黄色在线| 羞羞视频在线观看 | a级毛片毛片免费观看久潮喷 | 色妹子综合网 | 国产一区二区在线视频 | 午夜小视频在线观看 | 中文字幕动漫成人 | 黄色激情毛片 | 国产精品美女久久久久久久久久久 | 亚洲国产福利视频 | 亚洲国产一区二区在线 |