137. Single Number II
by Botao Xiao
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];
}
}
二刷
- 排序
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]; } }
Subscribe via RSS