CVTE軟體崗實習筆試記錄20210317

2021-10-22 12:02:37 字數 2244 閱讀 6025

先說題量,90分鐘,總共23道題,具體題型如下:

注意; 每做完一道題進入下一道題,就不能看前面的題了!!!

下面給出我的題解,但不知對錯。

比如:

arr為[1,

4,7,

3,5,

2],pivot是3

那麼結果可以使[1,

2,3,

4,5,

7],pivot兩邊元素的順序需要考慮

乍一看就是快速排序的partition思想了

public

class_1;

partition

(arr1, pivot)

; system.out.

println

(arrays.

tostring

(arr1));

}private

static

void

partition

(int

array,

int pivot)

//控制左指標比較並右移

這裡就可以發現本題與快排的partition函式的區別了,快排的partition函式是將大於等於pivot的移到右邊,小於或等於pivot的移到左邊,並不一定把所有等於pivot的元素都移到了中間。

所有本題需要將繼續處理一下,使用雙指標的思路將pivot左右兩邊的等於pivot的元素都移到中間(pivot邊上)。如下所示:

public

class_1;

partition

(arr1, pivot)

; system.out.

println

(arrays.

tostring

(arr1));

int[

] arr2 =

newint

;partition

(arr2, pivot)

; system.out.

println

(arrays.

tostring

(arr2));

int[

] arr3 =

newint

;partition

(arr3, pivot)

; system.out.

println

(arrays.

tostring

(arr3));

}private

static

void

partition

(int

array,

int pivot)

//控制左指標比較並右移

while

(left < right && array[left]

<= pivot)

if(left < right)

}for

(int i =

0; i < array.length; i++)}

//此時,left等於right,並且array[left]等於pivot

//將left左邊的等於pivot的移到挨著left的位置

for(

int i =

0, j = left -

1; i <= j; i++)if

(array[i]

== pivot)

}//將left右邊的等於pivot的移到挨著left的位置

leetcode第375題,鏈結

估計這次筆試又涼了,唉,繼續刷題。

記錄2017 9 7CVTE嵌入式軟體筆試程式設計題

1.輸入乙個字串,輸出字串中最後出現次數最少的字元,如果都有重複,則輸出最後出現字元最多的字元,例如輸入 abbccdffgg 輸出 d 輸入 aaabbbccddee 輸出 b include include include include include using namespace std ...

深信服C 開發崗筆試記錄

資料庫 c c html os 計網面試準備 更新中 筆試共有三部分 不定項選擇 8道 填空 7道 程式設計 3道 選擇和填空的部分內容涉及較廣,計算機知識和數學計算知識都有,不詳細記錄,要注意填空的概率問題較多 程式設計題共三道 1.由n個容器分層疊放,編號從上到下為1到n,每個容器的容量為x,如...

網易遊戲2019暑期實習開發崗筆試題

第二題第三題 第四題簽到題,給出一句話,比如 how are you 反轉輸出,如 you are how 呃呃呃。給出n個數字,找出有多少組 三個數的最大公約數為1 找出多少組 兩個互質的數字 是用莫比烏斯反演,三個數,抱歉,沒想到怎麼做。據說暴力能過百分之50資料。有n個人要做過山車,過山車有限...