当前位置: 首页 > news >正文

LeetCode 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

 

代码

采用二分法

#include<stdio.h>
#include<stdlib.h>int searchInsert(int* nums, int numsSize, int target);int main()
{int nums[5]={1,3,5,6};int target = 2;printf("%d",searchInsert(nums,5,target));return 0;
}int searchInsert(int* nums, int numsSize, int target)
{int low=0,high=numsSize-1;int mid=numsSize;if(numsSize==0)return 0;while(low<=high){mid=(high+low)/2;if(nums[mid]>target){high=mid-1;}else if(nums[mid]<target){low=mid+1;}else return mid;}if(nums[mid]!=target){int i;for(i=0;i<numsSize&&nums[i]<target;i++);mid=i;}return mid;
}

 

http://www.lryc.cn/news/123316.html

相关文章:

  • Linux系统中常见的几种软件包管理器
  • python异步IO完全指南
  • 打造企业或者个人IP引流法
  • TMC Self-Managed 提升跨多云环境安全性
  • 并发编程 - 线程间三种常见的通信手段
  • iperf3命令使用说明
  • 华纳云:美国Linux服务器磁盘分区备份的操作方式
  • Arrays类
  • lua ipairs pairs
  • swift3.0 废弃 swift 4.0 以后字符串截取
  • 休息是不可能休息的
  • Java面向对象(内部类)(枚举)(泛型)
  • macOS - 安装 GNU make、cmake
  • vue中style scoped属性的作用
  • 【ARM 嵌入式 编译系列 10.2 -- 符号表与可执行程序分离详细讲解】
  • Gin各种参数接收
  • 【Python】进阶之 MySQL入门教程
  • Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法
  • 三个整数排序
  • Nginx反向代理出现错误 502 bad gateway 案例解析
  • 截止到目前全量主体总数有多少?
  • HTTP--Request详解
  • Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client
  • 如何构建一个 NodeJS 影院微服务并使用 Docker 部署
  • BEVFusion(ICRA-2023)--01
  • Java——Iterator迭代器
  • GCC编译过程:预处理->编译->汇编->链接
  • JVM笔记 —— 出现内存溢出错误时时如何排查
  • 多级嵌套引入组件导致Vue提示子组件未注册问题
  • vue3+element-plus组件下拉列表,数组数据转成树形数据