540. Single Element in a Sorted Array

来源:互联网 发布:java http请求框架 编辑:程序博客网 时间:2024/06/06 04:25

这道题从中间开始找,然后看左边长度是偶数,还是奇数,往是长度是奇数的那边找

public class Solution {    public int singleNonDuplicate(int[] nums) {        int mid = nums.length/2;        return findSingle(nums,0,nums.length-1);    }    private int findSingle(int[] nums, int start, int end) {        int mid = (end-start)/2+start;        if (mid == nums.length-1)return nums[nums.length-1];        if (mid == 0)return nums[0];        if (nums[mid-1] == nums[mid]){            if((mid-1)%2==1){                return findSingle(nums,start,mid-1);            }else{                return findSingle(nums,mid+1,end);            }        }else if (nums[mid+1]==nums[mid]){            if((mid+1)%2==1){                return findSingle(nums,mid+1,end);            }else{                return findSingle(nums,start,mid-1);            }        }else return nums[mid];    }}
原创粉丝点击