程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 網易2017校園招聘算法題c語言實現源碼,2017校園招聘

網易2017校園招聘算法題c語言實現源碼,2017校園招聘

編輯:關於C語言

網易2017校園招聘算法題c語言實現源碼,2017校園招聘


題目:

給定一個數組,除了一個數出現1次之外,其余數都出現3次。找出出現一次的數。如:{1, 2, 1, 2, 1, 2, 7}, 找出7.

格式:

第一行輸入一個數n,代表數組的長度,接下來一行輸入數組A[n],(輸入的數組必須滿足問題描述的要求),最後輸出只出現一次的數。

要求:

你的算法只能是線性時間的復雜度,並且不能使用額外的空間哦~

樣例輸入

4
0 0 0 5
樣例輸出

5

 

源碼:

#include <stdio.h>
#include <math.h>

int main()
{
    int a[] = {1,2,3,1,2,1,3,2,7,3};
    int n = 10;
    int res, i, j, m;
    
    res = 0;
    for(i = 0; i < 32; i++)//32是int的二進制位數
    {
        m = 0;
        for(j = 0; j < n; j++)
        {
            if(a[j] % 2 == 1) m++;
            a[j] = a[j] >> 1;
        }
        res += (m % 3) * pow(2, i);//3指其余數都出現3次
    }
    
    printf("%d", res);
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved