国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Golang每日一練(leetDay0052)

這篇具有很好參考價(jià)值的文章主要介紹了Golang每日一練(leetDay0052)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Golang每日一練(leetDay0052)

目錄

153. 尋找旋轉(zhuǎn)排序數(shù)組中的最小值 Find Minimum In Rotated Sorted Array??????

154. 尋找旋轉(zhuǎn)排序數(shù)組中的最小值 II Find Minimum In Rotated Sorted Array II????????

?? 每日一練刷題專欄???

Golang每日一練 專欄

Python每日一練 專欄

C/C++每日一練 專欄

Java每日一練 專欄


153. 尋找旋轉(zhuǎn)排序數(shù)組中的最小值 Find Minimum In Rotated Sorted Array

已知一個(gè)長度為?n?的數(shù)組,預(yù)先按照升序排列,經(jīng)由?1?到?n?次?旋轉(zhuǎn)?后,得到輸入數(shù)組。例如,原數(shù)組?nums = [0,1,2,4,5,6,7]?在變化后可能得到:

  • 若旋轉(zhuǎn)?4?次,則可以得到?[4,5,6,7,0,1,2]
  • 若旋轉(zhuǎn)?7?次,則可以得到?[0,1,2,4,5,6,7]

注意,數(shù)組?[a[0], a[1], a[2], ..., a[n-1]]?旋轉(zhuǎn)一次?的結(jié)果為數(shù)組?[a[n-1], a[0], a[1], a[2], ..., a[n-2]]?。

給你一個(gè)元素值?互不相同?的數(shù)組?nums?,它原來是一個(gè)升序排列的數(shù)組,并按上述情形進(jìn)行了多次旋轉(zhuǎn)。請你找出并返回?cái)?shù)組中的?最小元素?。

你必須設(shè)計(jì)一個(gè)時(shí)間復(fù)雜度為?O(log n)?的算法解決此問題。

示例 1:

輸入:nums = [3,4,5,1,2]
輸出:1
解釋:原數(shù)組為 [1,2,3,4,5] ,旋轉(zhuǎn) 3 次得到輸入數(shù)組。

示例 2:

輸入:nums = [4,5,6,7,0,1,2]
輸出:0
解釋:原數(shù)組為 [0,1,2,4,5,6,7] ,旋轉(zhuǎn) 4 次得到輸入數(shù)組。

示例 3:

輸入:nums = [11,13,15,17]
輸出:11
解釋:原數(shù)組為 [11,13,15,17] ,旋轉(zhuǎn) 4 次得到輸入數(shù)組。

提示:

  • n == nums.length
  • 1 <= n <= 5000
  • -5000 <= nums[i] <= 5000
  • nums?中的所有整數(shù)?互不相同
  • nums?原來是一個(gè)升序排序的數(shù)組,并進(jìn)行了?1?至?n?次旋轉(zhuǎn)

代碼:

package main

import "fmt"

func findMin(nums []int) int {
	n := len(nums)
	left, right := 0, n-1
	for left < right {
		mid := left + (right-left)/2
		if nums[mid] < nums[right] {
			right = mid
		} else {
			left = mid + 1
		}
	}
	return nums[left]
}

func main() {
	nums := []int{3, 4, 5, 1, 2}
	fmt.Println(findMin(nums))
	nums = []int{4, 5, 6, 7, 0, 1, 2}
	fmt.Println(findMin(nums))
	nums = []int{11, 13, 15, 17}
	fmt.Println(findMin(nums))
}

輸出:

1
0
11?


154. 尋找旋轉(zhuǎn)排序數(shù)組中的最小值 II Find Minimum In Rotated Sorted Array II

已知一個(gè)長度為?n?的數(shù)組,預(yù)先按照升序排列,經(jīng)由?1?到?n?次?旋轉(zhuǎn)?后,得到輸入數(shù)組。例如,原數(shù)組?nums = [0,1,4,4,5,6,7]?在變化后可能得到:

  • 若旋轉(zhuǎn)?4?次,則可以得到?[4,5,6,7,0,1,4]
  • 若旋轉(zhuǎn)?7?次,則可以得到?[0,1,4,4,5,6,7]

注意,數(shù)組?[a[0], a[1], a[2], ..., a[n-1]]?旋轉(zhuǎn)一次?的結(jié)果為數(shù)組?[a[n-1], a[0], a[1], a[2], ..., a[n-2]]?。

給你一個(gè)可能存在?重復(fù)?元素值的數(shù)組?nums?,它原來是一個(gè)升序排列的數(shù)組,并按上述情形進(jìn)行了多次旋轉(zhuǎn)。請你找出并返回?cái)?shù)組中的?最小元素?。

你必須盡可能減少整個(gè)過程的操作步驟。

示例 1:

輸入:nums = [1,3,5]
輸出:1

示例 2:

輸入:nums = [2,2,2,0,1]
輸出:0

提示:

  • n == nums.length
  • 1 <= n <= 5000
  • -5000 <= nums[i] <= 5000
  • nums?原來是一個(gè)升序排序的數(shù)組,并進(jìn)行了?1?至?n?次旋轉(zhuǎn)

進(jìn)階:這道題與上一題154.類似,但?nums?可能包含重復(fù)元素。允許重復(fù)會影響算法的時(shí)間復(fù)雜度嗎?會如何影響,為什么?

代碼:

package main

import "fmt"

func findMin(nums []int) int {
	n := len(nums)
	left, right := 0, n-1
	for left < right {
		mid := left + (right-left)/2
		if nums[mid] < nums[right] {
			right = mid
		} else if nums[mid] > nums[right] {
			left = mid + 1
		} else {
			right--
		}
	}
	return nums[left]
}

func main() {
	nums := []int{1, 3, 5}
	fmt.Println(findMin(nums))
	nums = []int{2, 2, 2, 0, 1}
	fmt.Println(findMin(nums))
	nums = []int{4, 5, 6, 7, 0, 1, 4}
	fmt.Println(findMin(nums))
}

輸出:

1
0
0

思路:

與第 153 題類似,在找到中間元素時(shí),需要考慮以下兩種情況:

1. nums[mid] < nums[right]:說明最小值在左側(cè),將右端點(diǎn)更新為 mid;

2. nums[mid] > nums[right]:說明最小值在右側(cè),將左端點(diǎn)更新為 mid + 1。

如果 nums[mid] == nums[right],則無法判斷最小值在哪一側(cè),此時(shí)將右端點(diǎn)減一。


?? 每日一練刷題專欄???

? 持續(xù),努力奮斗做強(qiáng)刷題搬運(yùn)工!

?? 點(diǎn)贊,你的認(rèn)可是我堅(jiān)持的動力!?

???收藏,你的青睞是我努力的方向!?

? 評論,你的意見是我進(jìn)步的財(cái)富!??

??主頁:https://hannyang.blog.csdn.net/?文章來源地址http://www.zghlxwxcb.cn/news/detail-431163.html

Golang每日一練(leetDay0052)

Golang每日一練 專欄

Golang每日一練(leetDay0052)

Python每日一練 專欄

Golang每日一練(leetDay0052)

C/C++每日一練 專欄

Golang每日一練(leetDay0052)

Java每日一練 專欄

到了這里,關(guān)于Golang每日一練(leetDay0052)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Golang每日一練(leetDay0116) 路徑交叉、回文對

    Golang每日一練(leetDay0116) 路徑交叉、回文對

    目錄 335. 路徑交叉 Self-crossing???????? 336. 回文對 Palindrome Pairs???????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個(gè)整數(shù)數(shù)組? distance ? 。 從? X-Y ?平面上的點(diǎn)? (0,0) ?開始,先向北

    2024年02月12日
    瀏覽(22)
  • Golang每日一練(leetDay0049) 二叉樹專題(9)

    Golang每日一練(leetDay0049) 二叉樹專題(9)

    目錄 144. 二叉樹的前序遍歷 Binary-tree Preorder Traversal???? 145. 二叉樹的前序遍歷 Binary-tree Postorder Traversal???? 對比: 94. 二叉樹的中序遍歷 Binary-tree Inorder Traversal???? 146. LRU緩存 LRU Cache?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一

    2024年02月04日
    瀏覽(30)
  • Golang每日一練(leetDay0065) 位1的個(gè)數(shù)、詞頻統(tǒng)計(jì)

    Golang每日一練(leetDay0065) 位1的個(gè)數(shù)、詞頻統(tǒng)計(jì)

    目錄 191. 位1的個(gè)數(shù) Nnumber of 1-bits???? 192. 統(tǒng)計(jì)詞頻 Word Frequency?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 編寫一個(gè)函數(shù),輸入是一個(gè)無符號整數(shù)(以二進(jìn)制串的形式),返回其二進(jìn)制表達(dá)式中數(shù)字位數(shù)為

    2024年02月06日
    瀏覽(24)
  • Golang每日一練(leetDay0102) 刪除無效的括號、累加數(shù)

    Golang每日一練(leetDay0102) 刪除無效的括號、累加數(shù)

    目錄 295. 數(shù)據(jù)流的中位數(shù) Find-median-from-data-stream??????? 301. 刪除無效的括號 Remove Invalid Parentheses??????? 306. 累加數(shù) Additive Number????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 中位數(shù) 是有

    2024年02月10日
    瀏覽(27)
  • Golang每日一練(leetDay0098) 生命、Nim、猜數(shù)字游戲

    Golang每日一練(leetDay0098) 生命、Nim、猜數(shù)字游戲

    目錄 289. 生命游戲 Game Of Life?????? 292. Nim 游戲 Nim Game???? 299. 猜數(shù)字游戲 Bulls and Cows?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 生命游戲 ? 是英國數(shù)學(xué)家約翰·何頓·康威在 1970 年發(fā)

    2024年02月09日
    瀏覽(21)
  • Golang每日一練(leetDay0061) 表列序號、階乘后的零

    Golang每日一練(leetDay0061) 表列序號、階乘后的零

    目錄 171. Excel 表列序號 Excel Sheet Column Number???? 172. 階乘后的零 Factorial Trailing Zeroes?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個(gè)字符串? columnTitle ?,表示 Excel 表格中的列名稱。返回? 該列名稱對

    2024年02月04日
    瀏覽(59)
  • Golang每日一練(leetDay0095) 第一個(gè)錯(cuò)誤的版本、完全平方數(shù)

    Golang每日一練(leetDay0095) 第一個(gè)錯(cuò)誤的版本、完全平方數(shù)

    目錄 278. 第一個(gè)錯(cuò)誤的版本 First Bad Version???? 279. 完全平方數(shù) Perfect Squares?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 你是產(chǎn)品經(jīng)理,目前正在帶領(lǐng)一個(gè)團(tuán)隊(duì)開發(fā)新的產(chǎn)品。不幸的是,你

    2024年02月09日
    瀏覽(34)
  • Golang每日一練(leetDay0115) 重新安排行程、遞增的三元子序列

    Golang每日一練(leetDay0115) 重新安排行程、遞增的三元子序列

    目錄 332. 重新安排行程 Reconstruct Itinerary???????? 334. 遞增的三元子序列 Increasing Triplet Subsequence????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一份航線列表? tickets ?,其中? tickets[i]

    2024年02月16日
    瀏覽(21)
  • Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    目錄 341. 扁平化嵌套列表迭代器 Flatten Nested List Iterator?????? 343. 整數(shù)拆分 Integer Break?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個(gè)嵌套的整數(shù)列表? nestedList ?。每個(gè)元素要么是

    2024年02月16日
    瀏覽(54)
  • Golang每日一練(leetDay0075) 打家劫舍II、最短回文串

    Golang每日一練(leetDay0075) 打家劫舍II、最短回文串

    目錄 213. 打家劫舍 II House Robber ii?????? 214. 最短回文串 Shortest Palindrome???????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 你是一個(gè)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋,每間房內(nèi)都藏有一定的

    2024年02月06日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包