搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。我这错哪了呀,找不出来怎么错的
int searchInsert(int* nums, int numsSize, int target){
if (numsSize = 0)
{
return 0;
}
int i = 0;
while(true)
{
if(target == nums)
{
return i;
}
if(i == numsSize - 1)
{
return i + 1;
}
if (target > nums && target < nums)
{
return i + 1;
}
i++;
}
}
在if语句中,将numsSize赋值为0,应该是判断numsSize是否等于0,需要使用双等号来进行比较。所以应该将if (numsSize = 0)修改为if (numsSize == 0)。
另外,在判断target是否在数组中时,应该将target与当前索引i所对应的元素进行比较,而不是与下一个元素进行比较。因此,应该将if (target > nums[ i] && target < nums)修改为if (target > nums[ i] && target <= nums)。
修改后的代码如下:
int searchInsert(int* nums, int numsSize, int target){
if (numsSize == 0)
{
return 0;
}
int i = 0;
while(true)
{
if(target == nums[ i])
{
return i;
}
if(i == numsSize - 1)
{
return i + 1;
}
if (target > nums[ i] && target <= nums)
{
return i + 1;
}
i++;
}
}
页:
[1]