首页 > 其他分享 >Leetcode-35

Leetcode-35

时间:2024-06-10 15:22:11浏览次数:16  
标签:right target nums int 示例 35 Leetcode left

题目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)
链接:https://leetcode-cn.com/problems/search-insert-position/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

简单二分,要求O(log n) ,尽量不要暴力搜索

解题代码

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left=0;
        int right=nums.size()-1;
        int mid=left+(right-left)/2;
        if(target>nums[right]){
            return right+1;
        }
        while(left<right){
            if(nums[mid]==target){
                return mid;
            }
            if(nums[mid]<target){
                left=mid+1;
            }else{
                right=mid;
            }
            mid=left+(right-left)/2;
        }
        return mid;
    }
};

标签:right,target,nums,int,示例,35,Leetcode,left
From: https://www.cnblogs.com/cosmos42/p/18240692

相关文章

  • Leetcode-22
    题目22.括号生成难度:中等数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且**有效的**括号组合。示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"]提示:1<=n<=8来源:力扣(Lee......
  • Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)
    给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2......
  • Leetcode-1221
    题目1221.分割平衡字符串难度:简单在一个平衡字符串中,'L'和'R'字符的数量是相同的。给你一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串,且分割得到的平衡字符串是原平衡字符串的连续子串。返回可以通过分割得到的平衡......
  • Leetcode-13
    题目13.罗马数字转整数难度:简单罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D500M1000例如,罗马数字2写做II,即为两个并列的1。......
  • Leetcode-509
    题目509.斐波那契数难度:简单斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1) =1F(n)=F(n-1)+F(n-2),其中n>1给定n,请计算F(n)。示例1:输入:n=2输出:1解释:F(2......
  • Leetcode-917
    题目917.仅仅反转字母难度:简单给你一个字符串s,根据下述规则反转字符串:所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。返回反转后的s。示例1:输入:s="ab-cd"输出:"dc-ba"示例2:输入:s="a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例3:输入:s=......
  • Leetcode-007
    题目7.整数反转难度:中等给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=-123输......
  • 离NOI还有 35 天:假如我有让时间匀速流动的能力
    打打删删了好多东西,发现有些还是说不出来可能。是在一晚上没睡觉的精神状态下写的所以可能很消极呜呜……离NOI好像就只剩35天了,但是我记得前几天上becoder它还告诉我有一百多天来着。压力一下子就大起来了。我有时候睡好了觉状态巨好就在想,我还要熬三十多天……天天都......
  • Q22 LeetCode142 环形链表
    1.使用快慢指针2.快指针向后移动两个位置,慢指针向后移动一个位置3.若快慢指针能相等,则有环4.将一个指针指向head,一个指针指向fast,挨个向后遍历,相等即进环点 1publicclassSolution{2publicListNodedetectCycle(ListNodehead){3ListNodequickInd......
  • Q21 LeetCode02.07 链表相交
    1.求出两链表长度2.分情况进行长链表头结点后移3.移至相同长度,两头结点一起后移,找到公共节点 1publicclassSolution{2publicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){34ListNodecurA=headA;5ListNod......