leetcode第35题运行报错

img


leetcode第35题为什么会运行报错,代码的那个地方出现了错误

img


这个是另外又写了一次,为什么也是运行报错

你提交的代码,跟后面粘出来的不一样啊。按照最后贴的代码 执行是没有问题的

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/690534
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:leetcode 136 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
  • 除此之外, 这篇博客: leetcode双周赛第31场,如何把做过的题做多中的 leetcode双周赛第31场,如何把做过的题做多 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  •   以前没玩过leetcode的比赛,第一次玩,感觉几个题当中还是有值得整理的地方。类似的题目别人也会写,但是大家都是描述题目,然后写代码,希望我的文章能够完整展示思考的过程,希望你能够有助于帮助大家建立良好的思维习惯,提高思维能力。如此,不甚喜悦。
      水平有限,思考不值得借鉴的地方也希望大家自行甄别,如果能给出建议,不胜感激。
      有的人做完题目,这道题也就到此结束了,但是我们需要具备把题做多的能力,做完一个题,可以稍微的想想类似的题目该如何做,如果我是出题人,这道题可以怎么变。

  • 以下回答由chatgpt基于相关博客总结生成:

    经过仔细阅读参考资料,发现并没有针对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上提交这份代码,并得到正确的结果了。