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

34.在排序數(shù)組中查找元素的第一個和最后一個位置

這篇具有很好參考價值的文章主要介紹了34.在排序數(shù)組中查找元素的第一個和最后一個位置。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

34.在排序數(shù)組中查找元素的第一個和最后一個位置

給你一個按照非遞減順序排列的整數(shù)數(shù)組 nums,和一個目標值 target。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。

如果數(shù)組中不存在目標值 target,返回 [-1, -1]。

你必須設(shè)計并實現(xiàn)時間復(fù)雜度為 O(log n) 的算法解決此問題。

示例 1:

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

示例 2:

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

示例 3:

輸入:nums = [], target = 0
輸出:[-1,-1]

提示:

  • 0 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • nums 是一個非遞減數(shù)組
  • -109 <= target <= 109

該題考察的是二分法,二分法求左右邊界問題文章來源地址http://www.zghlxwxcb.cn/news/detail-793521.html

//荷蘭國旗問題,兩次二分
public class Problem_0034_FindFirstAndLastPositionOfElementInSortedArray {
	public static int[] searchRange(int[] nums, int target) {
		int[] ans = { -1, -1 };
		if (nums == null || nums.length == 0) {
			return ans;
		}
		ans[0] = findFirst(nums, target);
		ans[1] = findLast(nums, target);
		return ans;
	}

	public static int findFirst(int[] arr, int num) {
		int L = 0;
		int R = arr.length - 1;
		int ans = -1;
		int mid = 0;
		while (L <= R) {
			mid = L + ((R - L) >> 1);
			if (arr[mid] < num) {
				L = mid + 1;
			} else if (arr[mid] > num) {
				R = mid - 1;
			} else {
				ans = mid;
                //  此處因為要找的target最左邊界,所有移動R為mid - 1,再看左邊還有沒有target值
				R = mid - 1;
			}
		}
		return ans;
	}

	public static int findLast(int[] arr, int num) {
		int L = 0;
		int R = arr.length - 1;
		int ans = -1;
		int mid = 0;
		while (L <= R) {
			mid = L + ((R - L) >> 1);
			if (arr[mid] < num) {
				L = mid + 1;
			} else if (arr[mid] > num) {
				R = mid - 1;
			} else {
				ans = mid;
                 //  此處因為要找的target最右邊界,所有移動L為mid + 1,再看右邊還有沒有target值
				L = mid + 1;
			}
		}
		return ans;
	}
}

到了這里,關(guān)于34.在排序數(shù)組中查找元素的第一個和最后一個位置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • LeetCode 34 在排序數(shù)組中查找元素的第一個和最后一個位置

    在排序數(shù)組中查找元素的第一個和最后一個位置 給你一個按照非遞減順序排列的整數(shù)數(shù)組 nums ,和一個目標值 target 。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標值 target ,返回 [-1, -1] 。 你必須設(shè)計并實現(xiàn)時間復(fù)雜度為 O(log n) 的算法解決此

    2024年02月02日
    瀏覽(25)
  • 二分查找實例1(在排序數(shù)組中查找元素的第一個和最后一個位置)

    二分查找實例1(在排序數(shù)組中查找元素的第一個和最后一個位置)

    給你一個按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個目標值? target 。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標值? target ,返回? [-1, -1] 。 你必須設(shè)計并實現(xiàn)時間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 提示

    2024年02月09日
    瀏覽(21)
  • 84.在排序數(shù)組中查找元素的第一個和最后一個位置(力扣)

    84.在排序數(shù)組中查找元素的第一個和最后一個位置(力扣)

    目錄 問題描述 代碼解決以及思想? 知識點? 初始化左邊界 left 為數(shù)組的起始位置(0),右邊界 right 為數(shù)組的結(jié)束位置( nums.size() - 1 )。 進入一個循環(huán),只要左邊界 left 不大于右邊界 right ,就執(zhí)行以下操作: a. 計算中間位置 middle ,這是為了進行二分查找,以避免整數(shù)溢

    2024年02月06日
    瀏覽(29)
  • 在排序數(shù)組中查找元素的第一個和最后一個位置(Java詳解)

    在排序數(shù)組中查找元素的第一個和最后一個位置(Java詳解)

    給你一個按照 非遞減 順序排列的整數(shù)數(shù)組? nums ,和一個目標值? target 。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標值? target ,返回? [-1, -1] 。 你必須設(shè)計并實現(xiàn)時間復(fù)雜度為 ? O(log n) ?的算法解決此問題。 示例: 輸入:nums = [5,7,7,8,8

    2024年02月03日
    瀏覽(28)
  • 【算法Hot100系列】在排序數(shù)組中查找元素的第一個和最后一個位置

    【算法Hot100系列】在排序數(shù)組中查找元素的第一個和最后一個位置

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續(xù)學習,不斷總結(jié),共同進步,活到老學到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年02月02日
    瀏覽(29)
  • 【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個匹配項的下標&&在排序數(shù)組中查找元素的第一個和最后一個位置

    【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個匹配項的下標&&在排序數(shù)組中查找元素的第一個和最后一個位置

    ========================================================================= 主頁點擊直達: 個人主頁 我的小倉庫: 代碼倉庫 C語言偷著笑: C語言專欄 數(shù)據(jù)結(jié)構(gòu)挨打小記: 初階數(shù)據(jù)結(jié)構(gòu)專欄 Linux被操作記: Linux專欄 LeetCode刷題掉發(fā)記: LeetCode刷題 算法: 算法專欄? C++頭疼記: C++專欄 計算機

    2024年02月08日
    瀏覽(37)
  • 「優(yōu)選算法刷題」:在排序數(shù)組中查找元素的第一個和最后個位置

    「優(yōu)選算法刷題」:在排序數(shù)組中查找元素的第一個和最后個位置

    給你一個按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個目標值? target 。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標值? target ,返回? [-1, -1] 。 你必須設(shè)計并實現(xiàn)時間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 二分

    2024年01月22日
    瀏覽(23)
  • 【leetcode題解C++】34.在排序數(shù)值中查找第一個和最后一個位置

    給你一個按照非遞減順序排列的整數(shù)數(shù)組? nums ,和一個目標值? target 。請你找出給定目標值在數(shù)組中的開始位置和結(jié)束位置。 如果數(shù)組中不存在目標值? target ,返回? [-1, -1] 。 你必須設(shè)計并實現(xiàn)時間復(fù)雜度為? O(log n) ?的算法解決此問題。 示例 1: 示例?2: 示例 3: 思路

    2024年01月16日
    瀏覽(23)
  • 代碼隨想錄額外題目| 數(shù)組03 ●34排序數(shù)組查首尾位置 ●922按奇偶排序數(shù)組II●35搜索插入位置

    代碼隨想錄額外題目| 數(shù)組03 ●34排序數(shù)組查首尾位置 ●922按奇偶排序數(shù)組II●35搜索插入位置

    #34排序數(shù)組查首尾位置 medium,我寫的:1 暴力 我寫的,做了個類似二分搜索的方法: 隨想錄:從兩頭都做類似二分搜索 #922?按奇偶排序數(shù)組II 我的解法,有點蠢: inplace解法: 把odd idx放的偶數(shù),給換到even idx放的奇數(shù) 注意j是從1開始,而且每輪i,j都是繼續(xù)增加不回去 空間表

    2024年02月15日
    瀏覽(27)
  • 【LeetCode】2619. 數(shù)組原型對象的最后一個元素

    【LeetCode】2619. 數(shù)組原型對象的最后一個元素

    請你編寫一段代碼實現(xiàn)一個數(shù)組方法,使任何數(shù)組都可以調(diào)用 array.last() 方法,這個方法將返回數(shù)組最后一個元素。如果數(shù)組中沒有元素,則返回 -1 。 你可以假設(shè)數(shù)組是 JSON.parse 的輸出結(jié)果。 示例 1 : 輸入: nums = [null, {}, 3] 輸出: 3 解釋:調(diào)用 nums.last() 后返回最后一個元

    2024年01月21日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包