滴滴-測試開發(fā)面經(七)
點擊藍字關注我們,獲取更多面經



1)SELECT子句中避免使用*號
2)多表連接時,使用表別名關聯(lián)字段
3)多表連接查詢時,將表與表之間的關聯(lián)條件寫在WHERE左邊關聯(lián),WHERE右邊再寫過濾最大的條件
4)FROM子句中包含多個表的情況下,將表數據最少的表放在最后,因為數據庫的解析器是按照從右到左的順序處理FROM子句中的表數據,FROM子句中寫在最后的表將被最先處理
5)模糊查詢 like,like ‘關鍵字%’會走索引,如果使用like ‘%關鍵字%’ 和’%關鍵字’將全文索引
6)盡可能使用exists代替in,而對于連續(xù)的數據可以使用between就不要使用in和not in
7)單獨使用Group By和Order by時,Group By和Order by的列盡可能要有索引,如果沒有索引,執(zhí)行過程中會產生臨時表,如果Group By和Order by組合使用時如果條件列不一樣,也會產生臨時表降低效率。
8)對于insert的優(yōu)化,可以從三個方面入手,插入單條數據時,將數據進行有序(根據索引的順序)插入,插入多條數據時將數據合并到一條語句中執(zhí)行,例如:
insert into test(name,age) values(‘xxx’,18),(‘zzz’.20);。
對于批量插入多條數據可以使用事務進行插入處理。


物理層
物理層主要的作用就是定義物理設備如何去傳輸數據簡單來說有沒有物理我們的軟件是沒有辦法去使用的所以呢物理層就是這些硬件設備相關的東西
數據鏈路層
數據鏈路層是在等我們的通信實體之間建立數據鏈路的連接。那么怎么理解呢?就是說,把我們的物理設備通過電路之類的鏈接到了一起。
網絡層
網絡層為數據在結點之間傳輸創(chuàng)建邏輯電路。比如訪問一個百度的網址,發(fā)起請求后,會去尋找百度這個服務器的地址。它就是一個邏輯關系,它是在網絡層為我們創(chuàng)建的
傳輸層
向用戶提供端到端服務。我們的電腦和百度服務器建立連接之后,如何去傳輸數據,都是在這一層定義的。如果數據太大的話,分包,分片,傳輸,到了百度服務器之后,又需要重新的組裝起來。傳輸層,向高層屏蔽了下層數據通信的細節(jié)。
應用層
為應用軟件提供了很多服務。只要new一個服務對象,就可以使用相關的工具,傳輸數據,構建于TCP協(xié)議之上,屏蔽了網絡傳輸的相關細節(jié)。



解題思路:
(1) 新建單向鏈表;
(2) 刪除鏈表中的指定值:
void deleteNum(Node* head, int data);
解題思路:
步驟一: 排除特殊情況:頭結點值等于需要刪除值data,則先直接刪除頭部的節(jié)點;
步驟二:
使用快慢指針p, q;
if p->val == data
q->next = p->next;
刪除p節(jié)點
p = q->next;
else
q = p->next;
p = q->next;
using namespace std;// 定義節(jié)點struct Node{int val;Node* next;Node(){ // 初始化節(jié)點val = -1;next = NULL;}};// 刪除指定值的節(jié)點Node* deleteNum(Node* head, int data){// 排除鏈表頭指定值的情況while(head!=NULL && head->val==data){Node* temp = head;head = head->next;delete temp;}Node* p ,* q; // p:較快地指針, q:較慢指針p = q = head;while(p!=NULL){if(p->val==data){ // 第一個p肯定不會是dataq->next = p->next;delete p;p = q->next;}else{q = p;p = p->next;}}return head;}int main(){int N, num;cin >> N;// 頭結點Node head;cin >> num;head.val = num;Node *p = &head;for(int i=1;i<N;i++){cin >> num;Node* temp = new Node(); // 新建節(jié)點temp->val = num;p->next = temp;p = temp;}// 刪除指定值的valint data;cin >> data;Node* result = deleteNum(&head, data);// 輸出while(result!=NULL){cout << result->val << " ";result = result->next;}cout << endl;return 0;}
更多面經
掃描二維碼
獲取更多面經
扶搖就業(yè)
