思科筆試題1

來源:互聯網
上載者:User

1. 用宏定義寫出swap(x,y)
2.數組a[N],存放了1至N-1個數,其中某個數重複一次。寫一個函數,找出被重複的數字.時間複雜度必須為o(N)函數原型:
int do_dup(int a[],int N)
3 一語句實現x是否為2的若干次冪的判斷
4.unsigned int intvert(unsigned int x,int p,int n)實現對x的進行轉換,p為起始轉化位,n為需要轉換的長度,假設起始點在右邊.如x=0b0001 0001,p=4,n=3轉換後x=0b0110 0001 

參考答案:

1。

#define swap(x, y)/
x = x + y;/
y = x - y;/
x = x - y;

#define swap1(x, y)/
x ^= y;/
y ^= x;/
x ^= y;

對於swap,當輸入的資料是不同種類型的話,這個宏的結果是不對的。
對於swap1,只適用於整型資料。

2。

第二題,採用hash表,對訪問到的每一個數N,在hash表中記錄其值為true,那麼當再次訪問到時,如果值已經為true,那麼表明重複了,這樣只要掃描一次,時間複雜度為O(n),而對hash表的訪問時間複雜度是O(1)
3。

((i & (i - 1)) ? false : true)

4。

result ^= (  ((1<<n)-1)  <<  p );

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.