Java--找只出现一次的数字

1、问题
有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
2、分析:找出只出现一次的数字
有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
比如说 1 3 2 4 2 1 4 只出现一次的数字就是3
分析过程:
(1) 先调用Arrays.sort()方法进行排序,它是进行升序排序的 1 1 2 2 3 4 4
(2) for循环遍历这个数组,让i从第二个元素开始,与左右两边都进行比较,如果左右两边的数字都与i不一样,
(3)那么这个i就是要找的出现一次的数字,在方法中返回这个数字
3、代码演示

package demomethod03;

import java.util.Arrays;

/**
 * 找出只出现一次的数字
 * 有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
 *    比如说  1 3 2 4 2 1 4     只出现一次的数字就是3
 *     分析过程:
 *          先调用Arrays.sort()方法进行排序,它是进行升序排序的     1 1 2 2 3 4 4
 *          for循环遍历这个数组,让i从第二个元素开始,与左右两边都进行比较,如果左右两边的数字都与i不一样,
 *          那么这个i就是要找的出现一次的数字
 *      1、先创建一个数组来保存这组数据
 *      2、调用方法返回这个要找的数字
 *  方法三要素:
 *  返回值类型:int
 *  方法名: findNum
 *  参数列表:int[] nums   数组
 */
public class FindOneNum {
    public static void main(String[] args) {
        int[] nums = new int[]{1, 3, 2, 4, 2, 1, 4};
        int ret = findNum(nums);
        System.out.println("只出现一次的数字为" + ret);
    }

    public static int findNum(int[] nums) {
        Arrays.sort(nums);
        int onenum=0;
        for(int i=1;i<nums.length-2;i++){
            if((nums[i]!=nums[i-1])&&(nums[i]!=nums[i+1])){
                onenum= nums[i];
            }
        }
        return onenum;
    }
}

3、运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Subuprogrammer/article/details/104770755
今日推荐