题解 | #数组中只出现一次的数(其它数出现k次)#

数组中只出现一次的数(其它数出现k次)

http://www.nowcoder.com/practice/5d3d74c3bf7f4e368e03096bb8857871

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int一维数组 
     * @param k int 
     * @return int
     */
    public int foundOnceNumber (int[] arr, int k) {
        // write code here
        
        //排序,比较
        Arrays.sort(arr);//排序
        //第一个和第二个相比较,如果不相等,则arr[0]只出现一次
        if(arr[0]!=arr[1]){
            return arr[0];
        }
        int length = arr.length;
        //倒数第一个和倒数第二个相比较,如果不相等,则arr[length-1]只出现一次
        if(arr[length-2]!=arr[length-1]){
            return arr[length-1];
        }
        //遍历,从第二个到倒数第二个开始遍历,如果与相邻的前后两个比较都不相等,则该数只出现一次
        for(int i = 1;i<length-1;i++){
            if(arr[i] != arr[i-1] && arr[i] != arr[i+1]){
                return arr[i];
            }
        }
        return arr[0];
    }
}
全部评论

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务