今天在做力扣的简单题,做到《只出现一次的数字》,第一反应是排序遍历然后检查每两项是否相同:
import java.util.Arrays;
public class draft03 {
public static void main(String[] args) {
int[] nums = {1};
System.out.println(Solution.singleNumber(nums));
}
}
class Solution {
public static int singleNumber(int[] nums) {
Arrays.sort(nums);
int n = nums.length;
for (int i = 0; i < n-1; i=i+2){
if (nums[i] != nums[i + 1])
return nums[i];
}
return nums[n-1];
}
}
后面了解了异或运算 后直接:
import java.util.Arrays;
public class draft03 {
public static void main(String[] args) {
int[] nums = {1};
System.out.println(Solution.singleNumber(nums));
}
}
class Solution {
public static int singleNumber(int[] nums) {
int result = 0;
for (int num : nums) {
result ^= num;
}
return result;
}
}