博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Single Element in a Sorted Array
阅读量:4625 次
发布时间:2019-06-09

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

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.

 

1 public class Solution { 2     public int singleNonDuplicate(int[] nums) { 3         int left = 0, right = nums.length - 1; 4          5         while (left <= right) { 6             if (left == right) return nums[left]; 7              8             int mid = left + (right - left) / 2; 9             if (mid > 0 && mid < right && nums[mid] != nums[mid - 1] && nums[mid] != nums[mid + 1])10                 return nums[mid];11             12             if (mid > 0 & nums[mid - 1] == nums[mid]) {13                 if ((mid - left) % 2 == 1) left = mid + 1;14                 else right = mid - 2;15             } else if (mid <= right && nums[mid] == nums[mid + 1]) {16                 if ((mid - left) % 2 == 1) right = mid - 1;17                 else left = mid + 2;18             }19         }20         return -1;21     }22 }

 

转载于:https://www.cnblogs.com/amazingzoe/p/7169518.html

你可能感兴趣的文章
J2EE开发之常用开源项目介绍
查看>>
8. String to Integer (atoi)
查看>>
移动硬盘磁盘结构损坏且无法读取文件怎样恢复
查看>>
学习记录(部分myeclipse快捷键,一些面试题),有点乱,但是挺有用
查看>>
poj2114 Boatherds
查看>>
maven学习(上)- 基本入门
查看>>
20165231 实验一 Java开发环境的熟悉
查看>>
移动商城第八篇【添加商品之基本属性和大字段数据(FCK文本编辑器)】
查看>>
Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
查看>>
对象序列化和反序列化
查看>>
6.10
查看>>
lcd_1602
查看>>
三年工作总结
查看>>
循环不变式证明算法的正确性
查看>>
实现算法2.15、2.16的程序(一个数组只生成一个静态链表)
查看>>
java常用设计模式
查看>>
Web开发中的网络知识(传输层)
查看>>
Shell脚本8种字符串截取方法总结
查看>>
串模式匹配——KMP算法
查看>>
贪心讲解链接
查看>>