Re: [閒聊] 每日leetcode已回收

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/05/17 22:08), 編輯推噓2(204)
留言6則, 6人參與, 1年前最新討論串236/1554 (看更多)
幹你老師,打到一半閃退是三小 34. Find First and Last Position of Element in Sorted Array 有一個遞增的array nums 並且給一個target,請找出該array中target出現的第一個和最後一個index 如果target沒有出現在nums中回傳[-1,-1] 思路: 標準的二分搜尋法 在二分搜尋法中,會這樣寫 if nums[mid]<target{ left=mid+1 }else{ right=m } 這樣會找到第一個出現的target 接著將二分搜尋法改寫成 if nums[mid]>target{ right=mid }else{ left=mid+1 } 這樣可以找到最後一個target後一位的數字 這樣就可以回傳答案了 golang code: func searchRange(nums []int, target int) []int { n := len(nums) if n == 0 { return []int{-1, -1} } l, r := 0, n-1 res := []int{-1, -1} for r > l { m := l + (r-l)/2 if nums[m] < target { l = m + 1 } else { r = m } } if nums[l] != target { return []int{-1, -1} } res[0] = l nums = append(nums, 1000000001) r = n for r > l { m := l + (r-l)/2 if nums[m] > target { r = m } else { l = m + 1 } } res[1] = l - 1 return res } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.214.211 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715954896.A.559.html

05/17 22:09, 1年前 , 1F
內推我
05/17 22:09, 1F

05/17 22:09, 1年前 , 2F
別捲了
05/17 22:09, 2F

05/17 22:10, 1年前 , 3F
別捲了
05/17 22:10, 3F

05/17 22:11, 1年前 , 4F
別捲了
05/17 22:11, 4F

05/17 22:13, 1年前 , 5F
別卷了
05/17 22:13, 5F

05/17 22:14, 1年前 , 6F
別卷了
05/17 22:14, 6F
文章代碼(AID): #1cHsJGLP (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cHsJGLP (Marginalman)