生活随笔
收集整理的這篇文章主要介紹了
2019瓜子网后台开发笔试题目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
填空題:
1、有三道概率題,感覺后臺開發的很喜歡考概率題呀
2、樹的前序遍歷、后序遍歷、中序遍歷
3、兩道網絡題目,求掩碼和確認序號的
4、數據庫ACID的意義是什么: 原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)
5、二叉樹的葉子節點怎么計算的
6、圖的鄰接矩陣最少的非空元素有多少:n個頂點的連通圖,至少有n-1條邊,它的鄰接矩陣中至少有n-1個非零元素
7、有序數組合并的最小最大次數是多少: n-1 和2n-1
8、sizeof的求解
9、fork和print 一起求輸出字符的個數 :print 帶\n 的話,則會清除緩存,不帶的話,則子進程中會含有原來的輸出字符
編程題:
1、二叉樹的合并
typedef
struct TreeNode {int
val;
struct TreeNode *left;
struct TreeNode *right;
}BiTNode,*BiTree;
struct TreeNode* merge(
struct TreeNode* l,
struct TreeNode* r) {
if (l && r) {l->
val += r->
val;l->left = merge(l->left, r->left);l->right = merge(l->right, r->right);
return l;}
else {
return l ? l : r;}
}
struct TreeNode* mergeTrees(
struct TreeNode* t1,
struct TreeNode* t2) {
struct TreeNode* ret = t1;merge(t1, t2);
return ret;
}
2、快速查找數組中的第 K 小的數字
方法一:可以全部排序,然后找到第k 個數,用STL自帶的sort,或者直接寫排序算法進行排序
方法二:類似于二分法,不斷縮小排序的規模,知道第 K 個最小的數字,參見July的 編程之法
下面的這種快速選擇排序始終只對一邊的數組進行遞歸排序,最壞也就是O(n),
#include<iostream>
#include<string>
#include<algorithm>using namespace std;
int median3(
int a[],
int left,
int right)
{
int center;center = (left + right) /
2;
if (a[left] > a[center])swap(a[left], a[center]);
if (a[left] > a[right])swap(a[left], a[right]);
if (a[center] > a[right])swap(a[center], a[right]);swap(a[center], a[right -
1]);
return a[right -
1];
}
void insert_sort(
int array[],
int left,
int loop_times)
{
for (
int j = left; j < left + loop_times; j++){
int key =
array[j];
int i = j -
1;
while (i>left &&
array[i]>key){
array[i +
1] =
array[i];i--;}
array[i +
1] = key;}
}
void quick_sort(
int s[],
int k,
int left,
int right)
{
int i, j;
int pivot;
if (left < right){pivot = median3(s, left, right);
cout <<
" "<< pivot << endl;
for (
int ii =
0; ii <
20; ++ii)
cout <<
" " << s[ii];
cout<< endl;i = left;j = right -
1;
for (;;){
while (s[++i] < pivot) {}
while (s[--j] > pivot){}
if (i < j){swap(s[i], s[j]);}
else{
break;}}swap(s[i], s[right -
1]);
cout <<
"i " << i <<
" j " << j << endl;
if (k <= i){quick_sort(s, k, left, i -
1);}
elseif (k > i +
1){quick_sort(s, k, i +
1, right);} }
else{insert_sort(s,left, right - left +
1);}
}
總結
以上是生活随笔為你收集整理的2019瓜子网后台开发笔试题目的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。