1 。奇數個整數,其中只有乙個整數重複奇數次,其他的重複偶數次。找出奇數次的整數
肯定是要求了時間複雜度了的,如果按照普通的演算法,時間複雜度為 n^2 ;
異或運算 可以用來進行資料交換:
交換兩個數字的大小
a=9;
b=10;
a=a^b;
b=b^a;
a=a^b;
結果是a為10,b為9.
採用位運算的方法,利用異或運算,兩個相同的數字異或運算為 0 ,三個相同的數字異或運算為這個數字。
異或的特性...a^a^b=b
根據這個原理可以
對這個陣列進行一次整體的異或運算,最後得到的數字即為出現奇數次的那個數字。
而且時間複雜度為 n;
int findx(int a ,int len)
;設c[97] = 1 表示字元a是存在的,如果=0則表示不存在。
下面的方法的時間複雜度為 m+n;
void findx(char *str1 ,char *str2)
;while(*p != '\0')
while(*s != '\0')
s++;}}
void main()
3 雙向鍊錶的插入,考慮表頭,表尾,以及中間的情況,
這個問題關鍵是這個雙鏈表之前應該是已經排好序了。否則怎會知道插入到什麼位置呢,暫且令煉表為公升序排列。
typedef struct doublelinknode
node;
node *create(int n) //建立雙向鍊錶
s->next = null;
return head;
}node *insert(node *head ,int a) //插入鍊錶
if(s == head->next) //表頭
else if(s==null) //表尾
else //表中間
return head;
}void display(node *head) //輸出鍊錶
printf("\n");
}void main()
微策略筆試題
題目 序列123.n,n介於3和9之間,在其中加入 或者空格,使其和為0,如123456 1 2 3 4 5 6 7 等價於1 23 45 67 0。請問,如何獲得所有組合?使用遞迴和非遞迴。下面的 是別人寫的,個人認為很好就收藏了。c 序列123.n,n介於3和9之間,在其中加入 或者空格,使其和...
文思筆試試題
1.建構函式與析構函式是否可以被過載,為什麼?2.指標和引用的區別。3.malloc 和new 的區別。4.字串反轉。用兩種方法,第二種方法只用乙個數串,直接互換。5.乙個time 類,包含 minute 和sec 兩個資料成員。模擬秒錶,每次走一秒,滿 60秒進一分鐘,此時秒又從 0開始。clas...
年終將 京東,微策略筆試題
小東所在公司要發年終獎,而小東恰好獲得了最高福利,他要在公司年會上參與乙個 遊戲,遊戲在乙個6 6的棋盤上進行,上面放著36個價值不等的禮物,每個小的棋盤上面放置著乙個禮物,他需要從左上角開始遊戲,每次只能向下或者向右移動一步,到達右下角停止,一路上的格仔裡的禮物小東都能拿到,請設計乙個演算法使小東...