leetcode 35.搜索插入位置 (search insert position)c语言
- 1.description
- 2.solution
1.description https://leetcode-cn.com/problems/search-insert-position/description/
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
【leetcode|leetcode 35.搜索插入位置 (search insert position)c语言】输入: [1,3,5,6], 2
输出: 1
示例 3:
输入: [1,3,5,6], 7
输出: 4
示例 4:
输入: [1,3,5,6], 0
输出: 0
2.solution 比较简单的问题,其实就是变体的二分查找:查找第一个大于等于给定值的元素,有点不同的是,当所有元素都比查找的小时,需插入最后位置,而不是返回指示不存在。
int searchInsert(int* nums, int numsSize, int target){
int low = 0, high = numsSize - 1;
while(low <= high){
int mid = low + ((high - low)>>1);
if (nums[mid] >= target){
if(mid == 0 || nums[mid-1] < target){
return mid;
}
high = mid - 1;
}else{
low = mid + 1;
}
}
return numsSize;
}
执行用时:4 ms
内存消耗:5.6 MB
推荐阅读
- 数据结构与算法|【算法】力扣第 266场周赛
- leetcode|今天开始记录自己的力扣之路
- Python|Python 每日一练 二分查找 搜索旋转排序数组 详解
- 【LeetCode】28.实现strstr() (KMP超详细讲解,sunday解法等五种方法,java实现)
- LeetCode-35-搜索插入位置-C语言
- leetcode python28.实现strStr()35. 搜索插入位置
- Leetcode Permutation I & II
- python|leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法
- LeetCode 28 Implement strStr() (C,C++,Java,Python)
- Python|Python Leetcode(665.非递减数列)