public int singleNonDuplicate(int[] nums) {
if (nums == null || nums.length <= 2) {
int start = 0, end = nums.length - 1, mid = 0;
while (start + 1 < end) {
mid = start + (end - start) / 2;
if (nums[mid - 1] == nums[mid]) {
if ((mid - 2 + 1) % 2 != 0) {
else if (nums[mid] == nums[mid + 1]) {
if ((mid - 1 + 1) % 2 != 0) {
if (start > 0 && nums[start - 1] != nums[start]) {