Skip to content

Latest commit

 

History

History
executable file
·
57 lines (47 loc) · 1.2 KB

137. Single Number II.md

File metadata and controls

executable file
·
57 lines (47 loc) · 1.2 KB

137. Single Number II

Question

Given a non-empty array of integers, every element appears three times except for one, which appears exactly once. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

Example 1:

Input: [2,2,3,2]
Output: 3

Example 2:

Input: [0,1,0,1,0,1,99]
Output: 99

Thinking:

  • Method 1:sort
class Solution {
    public int singleNumber(int[] nums) {
        Arrays.sort(nums);
        if(nums.length > 1)
            if(nums[0] != nums[1]) return nums[0];
        for(int i = 1; i < nums.length - 1; i++){
            if(nums[i] != nums[i - 1] && nums[i] != nums[i + 1])
                return nums[i];
        }
        return nums[nums.length - 1];
    }
}

二刷

  1. 排序
class Solution {
    public int singleNumber(int[] nums) {
        Arrays.sort(nums);
        if(nums.length > 1){
            if(nums[0] != nums[1])
                return nums[0];
        }
        for(int i = 1; i < nums.length - 1; i++){
            if(nums[i] != nums[i - 1] && nums[i] != nums[i + 1])
                return nums[i];
        }
        return nums[nums.length - 1];
    }
}