• 力扣 35. 搜索插入位置


    目录

    第一站 LeetCode 新手村

    前言

    35. 搜索插入位置

    题目描述

    解题思路

    代码

    总结

    题目来源


    第一站 LeetCode 新手村


    前言

    最近玩OJ赛,发现对算法的理解还需要更加扎实,code能力还可以进一步提升,所以做这样一个算法的系列文章,用于记录学习心得,交流经验,更好地进步和成长。


    35. 搜索插入位置

    题目描述

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

    请必须使用时间复杂度为 O(log n) 的算法。

    示例1

    输入: nums = [1,3,5,6], target = 5
    输出: 2

    示例 2

    输入: nums = [1,3,5,6], target = 2
    输出: 1

     示例 3

    输入: nums = [1,3,5,6], target = 7
    输出: 4

    提示

    • 1 <= nums.length <= 104
    • -104 <= nums[i] <= 104
    • nums 为 无重复元素 的 升序 排列数组
    • -104 <= target <= 104

    解题思路

    预知

    LeetCode是核心代码模式,所以只需要考虑核心算法,输入由系统自动完成,最后的输出以return返回;

    思路

    由于,有了时间复杂的为O(log n)的要求,所以采用二分法;

    这个题直接暴力遍历也可以过

    具体思路请参考代码和注释

    代码

    C++ 二分 时间复杂度O(log n)

    1. class Solution {
    2. public:
    3. int searchInsert(vector<int>& nums, int target) {
    4. // 二分查找 时间复杂度 O(log n)
    5. int n = nums.size();
    6. int left = 0, right = n-1, ans = n;
    7. while(left <= right){ //用右移可以防止越界,右移一位相当于除以2
    8. int mid = ((right-left) >> 1 ) + left; // (left+right)/2 = left + (right-left)/2
    9. if(target <= nums[mid]){
    10. ans = mid;
    11. right = mid-1;
    12. }else{
    13. left = mid+1;
    14. }
    15. }
    16. return ans;
    17. }
    18. };

    暴力 

    1. class Solution {
    2. public:
    3. int searchInsert(vector<int>& nums, int target) {
    4. for(int i=0;isize();i++){
    5. if(nums[i]>=target){
    6. return i;
    7. }
    8. }
    9. return nums.size();
    10. }
    11. };


    总结

    以上就是今天要讲的内容,本文仅仅简单讲解了《35. 搜索插入位置》这一题目,对二分法的使用进一步熟悉。

    题目来源

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/search-insert-position

  • 相关阅读:
    世界银行264个国家1437项统计指标
    PT_数字特征/常见分布的期望和方差
    【OpenCV】Chapter5.空间域图像滤波
    Docker+K3S搭建集群
    《STL容器篇》-string模拟实现
    内网安全-内网穿透
    全国的科技创新情况数据分享,涵盖2020-2022年三年情况
    最全artifactory-pro 安装教程 (docker方式安装)
    ES-分词器
    【Qt】Qt下配置OpenCV
  • 原文地址:https://blog.csdn.net/m0_51787573/article/details/127776586