LeetCode 之 Search Insert Position — C 实现
来源:互联网 发布:网络维护工程师工资 编辑:程序博客网 时间:2024/06/08 04:17
Search Insert Position
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Here are few examples.[1,3,5,6]
, 5 → 2[1,3,5,6]
, 2 → 1[1,3,5,6]
, 7 → 4[1,3,5,6]
, 0 → 0
假设数组中没有重复的数字。
例如:
[1,3,5,6]
, 5 → 2[1,3,5,6]
, 2 → 1[1,3,5,6]
, 7 → 4[1,3,5,6]
, 0 → 0
分析:
法1:顺序查找数组,直到找到大于等于目标值的第一个位置,该位置就是要找的位置。复杂度 O(n)。
int searchInsert(int* nums, int numsSize, int target) { int index = 0; if(!nums) return -1; for(; index < numsSize; ++index) { if(nums[index] < target) { continue; } else if(nums[index] >= target) { return index; } } return index;}
法2:二分法查找,查找大于等于目标值的位置。复杂度 O(logn)。
int searchInsert(int* nums, int numsSize, int target) { int low = 0, high = numsSize-1; int mid = 0; if(!nums)/*空指针*/ { return 0; } /*二分查找*/ while(low <= high) { mid = (low + high)/2; if(nums[mid] == target)/*在数组中*/ { return mid; } else if(nums[mid] < target) { low = mid + 1; } else { high = mid - 1; } } if(nums[mid] < target)/*不在数组中,数组中最后参与比较的值的索引是mid*/ { return (mid+1); } return mid;}
0 0
- LeetCode 之 Search Insert Position — C 实现
- LeetCode之Search Insert Position(C++)
- leetcode之Search Insert Position
- LeetCode 之 Search Insert Position
- LeetCode之Search Insert Position
- LeetCode之Search Insert Position
- LeetCode之Search Insert Position
- leetcode 之 Search Insert Position
- LeetCode之Search Insert Position
- LeetCode之Search Insert Position
- leetcode之Search Insert Position
- 【Leetcode】之Search Insert Position
- LeetCode之Search Insert Position
- LeetCode—Search Insert Position
- [C++]LeetCode: 41 Search Insert Position
- [LeetCode] 035. Search Insert Position (Medium) (C++)
- [leetcode-34]Search Insert Position(c)
- [C语言][LeetCode][35]Search Insert Position
- P269 5
- Leetcode[19]-Remove Nth Node From End of List
- Hadoop Balancer源码解读
- 线程与进程的区别
- java执行shell命令,chmod 777 xxx,改变权限无效的解决办法。
- LeetCode 之 Search Insert Position — C 实现
- css判断不同分辨率显示不同宽度布局实现自适应宽度
- c语言中关键字的用法
- VIM使用技巧 ctags taglist
- P269 6
- linux环境下静态ip的设置
- 文件共享
- 【swift系列之UIButton】简单使用
- java 定时器