一道關於下標排序的金山筆試題

2021-07-25 11:14:17 字數 485 閱讀 3423

有這樣一道筆試題它是這樣描述的:對乙個陣列按照給定下標排序,僅使用兩兩交換的方式,要求盡可能少的額外空間。栗子:

原陣列: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未...