zoukankan      html  css  js  c++  java
  • leetcode刷题7

    今天做的第二道题是LeetCode第136题,说的是给一个数组,除了其中一个元素外,其余的元素都出现了两次,要求输出只出现了一次的元素的值。具体代码如下:

    public static int solution(int[] nums){
            Map<Integer,Integer> map=new HashMap<>();
            int result=0;
            for (int i = 0; i <nums.length ; i++) {
                if (map.containsKey(nums[i])){
                    map.remove(nums[i]);
                }else {
                    result=nums[i];
                    map.put(result,1);
                }
            }
            return map.keySet().iterator().next();
        }

     第一次修改,20190812。新增了位运算解决该问题。可以考虑位运算中的异或(从高位开始比较,相同为0,否则为1)。具体地代码如下:

    public static int find(int[] nums){
            int j=0;
            for (int i = 0; i <nums.length ; i++) {
                j=j^nums[i];
            }
            return j;
        }
  • 相关阅读:
    JavaScript获取浏览器高度和宽度值
    机器学习2
    2014.7.23
    2014.7.22
    STM32 定时器
    STM32 外部中断
    STM32--systick延时
    STM32 时钟
    输入捕获
    DAC
  • 原文地址:https://www.cnblogs.com/cquer-xjtuer-lys/p/11335729.html
Copyright © 2011-2022 走看看