【数据结构与算法】之面试必考的“二分算法”系统梳理
生活随笔
收集整理的這篇文章主要介紹了
【数据结构与算法】之面试必考的“二分算法”系统梳理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、整數二分
整數二分說明
- 整數二分即為在整數集合上的二分,常見的用法有:在單調序列中查找「某個數是否出現過」、「某個數最早出現的位置」以及「>= 某個數中最小的數」等。
- 解決這類問題的思想非常統一,即對坐標區間不斷進行折半,以此在 O(log(n)) 的時間復雜度內確定答案,但其「實現方法」卻非常多樣,由此導致很多同學在此類問題上出錯。
- 因此接下來將通過一個例題來介紹「記錄 ans」的二分實現方法,該方法較易理解且不易出錯。
整數二分示例
在排序數組中查找元素的第一個和最后一個位置。
① 題目說明
- 題目描述:給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置,如果數組中不存在目標值 target,返回 [-1, -1]。設計并實現時間復雜度為 O(log(n)) 的算法解決此問題。
- 示例一:
總結
以上是生活随笔為你收集整理的【数据结构与算法】之面试必考的“二分算法”系统梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络通信与信息安全】之深入解析TCP的
- 下一篇: HarmonyOS之系统设置项的查询和使