JJJoker_ 2022-02-14 17:52 采纳率: 100%
浏览 32
已结题

力扣(Leecode) 540. 有序数组中的单一元素

题目
给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。
请你找出并返回只出现一次的那个数。
你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。
网址连接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array/

我的代码

int singleNonDuplicate(int* nums, int numsSize) {
    int c;
    for (int i = 0; i < (numsSize + 1) / 2 ; i++) {
        if (nums[2 * i] != nums[2 * i + 1]) {
            c = nums[2 * i];
            printf("%d", c);
            break;
        }
    }
    return c;
}

看不懂出了什么错误

img

  • 写回答

2条回答 默认 最新

  • [PE]经典八炮 2022-02-14 18:01
    关注

    你这样明显会越界,for循环第二个条件,改成i<(numsize-1)/2-1,在循环中直接返回c,然后最后返回最后一个元素。而且,你也不满足它的时间复杂度啊。而且,题目让你返回,没让你输出啊。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月14日
  • 已采纳回答 2月14日
  • 创建了问题 2月14日

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启