你提交的代码,跟后面粘出来的不一样啊。按照最后贴的代码 执行是没有问题的
经过仔细阅读参考资料,发现并没有针对Leetcode第35题运行报错的问题提供具体解决方案。因此,以下是一种解决Leetcode第35题运行报错的具体方法:
Leetcode第35题要求实现在给定的排序数组中查找元素的插入位置。根据题目要求,给定的数组已排好序。由于数组已经排好序,我们可以使用二分查找,快速找到元素的插入位置。
以下是解决该问题的具体步骤:
Step 1: 首先,判断给定的数组是否为空。如果数组为空,则插入位置为0。
Step 2: 初始化left、right、mid三个指针。其中,left指向数组的第一个元素,right指向数组的最后一个元素,mid则是left、right的中间值。
Step 3: 接下来,我们将mid指向的元素与要插入的元素进行比较。如果mid指向的元素大于要插入的元素,则更新right指针,使其指向当前mid - 1的位置。如果mid指向的元素小于要插入的元素,则更新left指针,使其指向当前mid + 1的位置。如果mid指向的元素等于要插入的元素,则插入位置为mid的位置。
Step 4: 经过一系列的比较与更新后,我们最终得到了要插入的位置。此时,插入位置就是left或right指针所指向的位置。
根据以上步骤,我们可以编写出如下的Java代码来实现该算法:
class Solution {
public int searchInsert(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return 0;
}
int left = 0, right = nums.length - 1, mid = 0;
while (left <= right) {
mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
}
}
最后,我们就可以在Leetcode上提交这份代码,并得到正确的结果了。