2019VIVO提前批筆試記錄

2021-09-24 04:16:33 字數 1974 閱讀 4396

------------一方面用於自己記錄,一方面給小夥伴們乙個參考-----------如有錯誤,懇請指正-------------

題目描述:1.給定兩個整形陣列,求差集;需要補全的函式傳入的引數是兩個陣列及對應的陣列長度;

思考:經典題目,衍生出求並集,交集,以下給出兩種思路,並分別分析複雜度:

思路一:將array1分為三段(建議做的時候畫圖),分別為:已經比較過的(即在array1中也在array2中),還未比較的,已經比較的(在array1,不在array2中);定義變數i為array1中未比較的第乙個位置,end為未比較的最後乙個位置,那麼上述對應的三段分別為[0-i],[i-end],[end-length1];從i開始遍歷array2,有兩種情況:1.array2中找到與array[i]相等的array2[j],交換array2[i]與array[j],i++;2,array2中沒有與array1[i]相等的,交換array1[i],array1[--end];

#includeusing namespace std;

void swap(int &a, int &b)

void help(int array1,int length1,int array2,int length2)

} if (flag)

else

}cout << "only in array1:" << " ";

for (int i = end; i < length1; i++)

cout << endl;

cout << "only in array2:" << " ";

for (int i = end; i < length2; i++)

cout << endl;

cout << "same in array1 & array2:" << " ";

for (int i = 0; i < end; i++)

cout << endl;

cout << "all of array1 & array2:" << " ";

for (int i = 0; i < length1; i++)

for (int i = end; i < length2; i++)

cout << endl;

}void main()

; int array2 = ;

int length1 = sizeof(array1) / sizeof(array1[0]);

int length2 = sizeof(array2) / sizeof(array2[0]);

help(array1, length1, array2, length2);

system("pause");

}

執行結果:

複雜分析:空間複雜度:o(1);最好情況下兩陣列完全相等,時間複雜度:o(n),最壞情況下兩陣列完全不等,時間複雜度:o(n^2);

思路二:其實剛拿到這個題目第一思路就是先排序,求兩個陣列的交集,再求交集在原陣列中的補集就是差集。

#include#includeusing namespace std;

//求c在a中的補集

void buji(int a, int lengtha, int c, int lengthc)

else

}while (i < lengtha) }

//求a,b的交集

void jiaoji(int a,int b,int lengtha,int lengthb)

if (a[i]>b[j])

if (a[i]執行結果:

複雜分析:空間複雜度:o(n);時間複雜度:o(n);

2019vivo秋招提前批筆試題第3題

筆試的時候沒做出來,就順手截圖了。雖然知道要用動態規劃做,但我一直就不太懂動態規劃。筆試完又花了2小時把它做出來了。也不知道效能怎麼樣,但還好做出來了。def solution n,toltal money,until price,until hot 二維陣列,每一行代表0到total money每...

2023年vivo提前批開發崗筆試

筆試共三道大題,不是很難,但是編譯器爛的要死,還不讓用本地編譯器。第一道題 輸入陣列a和陣列b,刪除陣列a中b中存在的元素!輸入描述 a b 輸出描述 class solution if flag false array1 k array1 i for int i 0 i k i cout arra...

2023年vivo提前批開發崗筆試

筆試共三道大題,不是很難,但是編譯器爛的要死,還不讓用本地編譯器。第一道題 輸入陣列a和陣列b,刪除陣列a中b中存在的元素!輸入描述 a b 輸出描述 class solution if flag false array1 k array1 i for int i 0 i k i cout arra...