博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组中只出现一次的数 Single Element in a Sorted Array
阅读量:6120 次
发布时间:2019-06-21

本文共 856 字,大约阅读时间需要 2 分钟。

  hot3.png

问题:

Given a sorted array consisting of only integers where every element appears twice except for one element which appears once. Find this single element that appears only once.

Example 1:

Input: [1,1,2,3,3,4,4,8,8]Output: 2

Example 2:

Input: [3,3,7,7,10,11,11]Output: 10

Note: Your solution should run in O(log n) time and O(1) space.

解决:

① 难道不是跟Single Number一样的吗。。O(n)

class Solution { //2ms

    public int singleNonDuplicate(int[] nums) {
        int xor = 0;
        for (int n : nums){
            xor ^= n;
        }
        return xor;
    }
}

② 用二分查找解决。O(lgn)

class Solution { //1ms

    public int singleNonDuplicate(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        while(left < right){
            int mid = (right - left) / 2 + left;
            if (mid % 2 == 1) mid --;
            if (nums[mid] != nums[mid + 1]){
                right = mid;
            }else {
                left = mid + 2;
            }
        }
        return nums[left];
    }
}

转载于:https://my.oschina.net/liyurong/blog/1605047

你可能感兴趣的文章
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>