zoukankan      html  css  js  c++  java
  • leetcode — single-number-ii

    /**
     * Source : https://oj.leetcode.com/problems/single-number-ii/
     *
     * Given an array of integers, every element appears three times except for one. Find that single one.
     *
     * Note:
     * Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
     *
     */
    public class SingleNumber2 {
    
        /**
         * 数组中每个元素出现3次,只有一个元素出现一次,找出出现一次的元素
         *
         * 沿用SingleNumber的方法,比如:{1,1,1,2,2,2,3}
         * 01
         * 01
         * 01
         * 10
         * 10
         * 10
         * 11
         * ______
         * 44 对每一位求和
         * 11 每一位对3求余
         *
         * @param arr
         * @return
         */
        public int singleNumber (int[] arr) {
            int res = 0;
            for (int i = 0; i < 32; i++) {
                int sum = 0;
                int mask = 1<<i;
                for (int j = 0; j < arr.length; j++) {
                    if ((arr[j] & mask) != 0) {
                        sum ++;
                    }
                }
                res |= (sum % 3) << i;
            }
            return res;
        }
    
        public static void main(String[] args) {
            SingleNumber2 singleNumber2 = new SingleNumber2();
            System.out.println(singleNumber2.singleNumber(new int[]{1,1,1,2,2,2,3}) + " == 3");
            System.out.println(singleNumber2.singleNumber(new int[]{14,14,14,9}) + " == 9");
        }
    
    
    }
    
  • 相关阅读:
    js web简单的路由管理器
    Flutter Android Toast Message(flutter访问Android Toast Message)
    web 常用开发工具
    vim 常用指令
    Bootstrap5 多级dropdown
    nginx proxy
    asm align 对齐数据
    nodejs stream 创建读写流
    asm FPU 寄存器
    Nestjs 上传文件到七牛云
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/7887186.html
Copyright © 2011-2022 走看看