📅  最后修改于: 2023-12-03 15:26:36.946000             🧑  作者: Mango
本程序通过输入一个整型数组,查找出现奇数次的数字。具体思路是利用异或运算,将数组中所有的数字进行异或运算,最终结果即为只出现奇数次的数字的异或结果。然后再遍历数组,利用异或运算分别与最终结果进行异或运算,最终结果不为0的即为只出现奇数次的数字。
public class FindOddNum {
public static int findOddNum(int[] nums) {
int res = 0;
for (int num : nums) {
res ^= num;
}
return res;
}
public static void main(String[] args) {
int[] nums = {1, 2, 2, 3, 3, 4, 4, 5, 5};
int result = findOddNum(nums);
System.out.println(result);
}
}
定义一个静态方法 findOddNum(int[] nums)
,参数为整型数组 nums
。返回值为只出现奇数次的数字的异或结果。
在方法中,定义一个整型变量 res
,初始化为0。使用 for-each
循环遍历数组 nums
,对于每一个数字,使用异或运算与 res
进行异或运算,最终结果即为只出现奇数次的数字的异或结果。
在主函数中,定义一个整型数组 nums
,初始化为示例数据。调用 findOddNum
方法,将结果存入变量 result
中。最后输出 result
的值。
运行程序后,输出结果为 1
,符合预期。