日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019瓜子网后台开发笔试题目

發布時間:2024/3/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;//right 是數組的最后一個元素 等于 n-1 int median3(int a[], int left, int right) //下面的快速排序算法實現之一,及通過三數取中分割法尋找最小的k個數的快速選擇SELECT算法都要調用這個median3函數 {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]);/* invariant: a[left] <= a[center] <= a[right] */swap(a[center], a[right - 1]); /* hide pivot ,pivot 放在了倒數第二個元素*/return a[right - 1]; /* return pivot */ }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]); //交換相應的主元,把s[i] 放到了倒數第二個元素位置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瓜子网后台开发笔试题目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。