有這樣一道筆試題它是這樣描述的:對乙個陣列按照給定下標排序,僅使用兩兩交換的方式,要求盡可能少的額外空間。栗子:
原陣列:a b c d e,假若它的排序下標為:3 0 1 4 2,那仫排序後為 d a b e c。
剛開始看到這道題,我想了一種最簡單的實現方式就是重新開闢和陣列parr一樣大的空間,通過遍歷ppos將對應元素放入新開闢的陣列空間中,最後再將新開闢陣列中的內容放入陣列parr中,於是我很開心的寫下了下面的**:
void swapsort(char *parr,int *ppos,int n)
else
parr[i]=tmp;
count++;
//如果tmp不是在最後一次才被填入正確的位置
//從當前坑的下乙個位置做新的坑
i=flag+1;
} }}
這種解法成功的解決了上述兩種情況的問題,此時還未想到存在其他的情況~~~
一道2005金山筆試題
問題描述 2005年11月金山筆試題。編碼完成下面的處理函式。函式將字串中的字元 移到串的前部分,前面的非 字元後移,但不能改變非 字元的先後順序,函式返回串中字元 的數量。如原始串為 ab cd e 12,處理後為 abcde12,函式並返回值為5。要求使用盡量少的時間和輔助空間 include ...
金山的一道有關執行緒的筆試題
在北京時參加金山校招的一道筆試題 四個執行緒,a b c d 共享乙個變數 i,ab 為加執行緒,cd 為減執行緒,四個執行緒依次執行,順序為 abcd,輸出為 0 1 2 1 0 1 2 1 0 當時覺得這道題還可以,不一會兒就寫出來了,我的思路是 四個執行緒,ab為乙個鎖,cd為乙個鎖,兩個鎖交...
一道關於 g 筆試題
正則裡 g 表示全域性 global 的意思,比如當替換字串時,如果正則不加g,則只替換一次。str hello,jack,hello,lily reg hello res str.replace reg,hi console.log res hi,jack,hello,lily 第二個hello未...