• [LeetCode]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?

    解题方案:

    该题目的一般方法是开辟一个空间为32的数组bitsum[32],然后遍历题目中给定的数组,将数组中每个整数的每一bit位给分出来,加到bitsum的对应位置。最后再遍历bitsum数组,同时求bitsum[i]%3,将结果做移位操作!下面是该题的代码:

     1 class Solution {
     2 public:
     3     int singleNumber(int A[], int n) {
     4         int bitsum[32] = {0};
     5         int result = 0;
     6         for (int i = 0; i < n; ++i) {
     7             for (int j = 0; j < 32; ++j) {
     8                 bitsum[j] += A[i]>>j & 1;
     9             }
    10         }
    11         for (int i = 0; i < 32; ++i) {
    12             result |=bitsum[i] % 3 << i;
    13         }
    14         return result;
    15     }
    16 };
  • 相关阅读:
    站立会议(二)
    站立会议(一)
    电梯演讲 作业派
    《你的灯亮着么》三四篇
    《你的灯亮着么》一二篇
    找一
    水王2
    搜狗输入法使用评价
    找水王问题
    典型用户及用户场景分析
  • 原文地址:https://www.cnblogs.com/skycore/p/3996533.html
Copyright © 2020-2023  润新知