35.搜索插入位置-力扣(LeetCode)
题目:
解题思路:
解决本题,我采用的思想主要是将各种情况分类。
分类:
1、对传入的数组进行遍历,如果查找到直接返回下标。
2、如果查找不到,并且应该插入数组末尾的情况。
3、如果查找不到,并且应该插入数组的首个位置的情况。
4、如果查找不到,并且插入位置在数组中间的情况。
在正常传参的情况下,上述四种分类已经涵盖了所有情况的判断,末尾的return -1可写可不写。某些特殊情况下,上面的遍历无法正确执行,返回-1可以提示用户函数出现错误。
代码:
int searchInsert(int* nums, int numSize, int target)
{
int i;
for(i = 0; i < numSize; i++)
{
if(nums[i] == target)
return i;
if(target > nums[i] && i == numSize-1)
return numSize;
if(target < nums[i] && i == 0)
return 0;
if(target > nums[i] && target <nums[i+1])
return i;
}
return -1;
}