ynnh 发表于 2023-9-20 13:58:33

搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
我这错哪了呀,找不出来怎么错的
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++;
    }
}

isdkz 发表于 2023-9-20 13:58:41

在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]
查看完整版本: 搜索插入位置