• 只出现一次的数字


    给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。

    备注:

    你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?

    import java.util.HashMap;
    
    public class Main {
    
        public static void main(String[] args) {
            int[] nums = {1, 1, 2, 3, 3, 2, 4, 5, 4, 4, 4};
            Solution solution = new Solution();
            Integer singleNum = solution.singleNumber(nums);
            System.out.println("singleNum :" + singleNum);
        }
    
        static class Solution {
            public int singleNumber(int[] nums) {
                if (nums == null) {
                    System.out.println("Array Is Empty");
                    return -1;
                }
                HashMap<Integer, Integer> hashMap = new HashMap<>();
                for (int i = 0; i < nums.length; i++) {
                    if (null != hashMap.put(nums[i], i)) {
                        hashMap.remove(nums[i]);
                    }
                }
                if (hashMap.keySet().iterator().hasNext()) {
                    return hashMap.keySet().iterator().next();
                }
                System.out.println("Array Is Symmetry");
                return -1;
            }
        }
        //v1
            /* array
            public int singleNumber(int[] nums) {
                int singleNum;
                List list = Arrays.asList(nums);
                list.sort(new Comparator() {
                    @Override
                    public int compare(Object o1, Object o2) {
                        return Integer.parseInt(o1.toString()) > Integer.parseInt(o2.toString()) ? 1 : 0;
                    }
                });
                Integer j = 0;
                for (int i = 0; i < list.size(); i = i+2) {
                    j = i + 1;
                    if (j == list.size()) {
                        return Integer.parseInt(list.get(i).toString());
                    }
                    if (list.get(i) != list.get(j)){
                        return Integer.parseInt(list.get(i).toString());
                    }
                }
                return (int)list.get(0);
            }
        }*/
    }
  • 相关阅读:
    nodejs express hi-cms
    写让别人能读懂的代码
    统计学和数据挖掘的关系
    假设检验
    相关性探索
    领域驱动设计分层类图
    未能加载文件或程序集 Ninject.Web.Common, Version=3.2.0.0
    论文阅读笔记
    《Computational Statistics with Matlab》硬译2
    C#抽象类和接口
  • 原文地址:https://www.cnblogs.com/Onlyou/p/8875724.html
Copyright © 2020-2023  润新知