|
发表于 2023-9-20 13:58:33
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
我这错哪了呀,找不出来怎么错的
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[i + 1])
{
return i + 1;
}
i++;
}
}
在if语句中,将numsSize赋值为0,应该是判断numsSize是否等于0,需要使用双等号来进行比较。所以应该将if (numsSize = 0)修改为if (numsSize == 0)。
另外,在判断target是否在数组中时,应该将target与当前索引i所对应的元素进行比较,而不是与下一个元素进行比较。因此,应该将if (target > nums[ i] && target < nums[i + 1])修改为if (target > nums[ i] && target <= nums[i + 1])。
修改后的代码如下:
- 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[i + 1])
- {
- return i + 1;
- }
- i++;
- }
- }
复制代码
|
|