華為2016校園招聘上機筆試題

2021-08-21 07:31:43 字數 2236 閱讀 4999

老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.

思路:①區間最大值,點更新。

這裡是最簡單的,其實還有區間求和,區間最大值,區間最小值,點更新,區間更新。

可以用線段樹、樹狀陣列、rmq

①這裡只簡單說明一下區間最大值和點更新,剩餘的放在下乙個篇詳細介紹。

②就用線段樹吧,n個資料,就是n個葉子節點存放資料。父節點表示範圍的最大值,每次修改之後需要向上更新。

③如何建樹?

線段樹,build(1,1,n)遞迴建樹,當節點的l==r的時候,遞迴結束,葉子節點(這裡的l和r不是左右子樹而是左右覆蓋範圍),依次得到的葉子節點肯定是從左到右的(8-->9-->5-->6-->7)。l和r可以表示輸入資料的下標,就是覆蓋範圍嘛。更新點的值比更新區間的值要簡單,查到點只需要向上更新即可。

**:

#include#define n 30005

struct nodep[n*2];

int a[n]; //輸入資料

int max(int a,int b)

void build(int o,int l,int r)

int mid=(l+r)/2;

build(o*2,l,mid);

build(o*2+1,mid+1,r);

p[o].value=max(p[o*2].value,p[o*2+1].value);

}//從根節點開始查

int find(int o,int l,int r)

//左兒子的右覆蓋範圍 小於 l (在右子樹)

if(l>p[o*2].r) return find(o*2+1,l,r);

//右兒子的左覆蓋範圍 大於 r (在左子樹)

else if(rx2)

printf("%d\n",find(1,x1,x2));

}else}}

return 0;

}

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。 

處理:1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)

2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)

3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑

思路

①首先字串處理,有乙個轉義符誤區,得到檔名和行數。然後定義乙個map就行相同檔名和行數進行統計,map插入會改變輸入順序,這是第二個誤區,需要乙個輔助記錄輸入順序。最後map轉化結構題陣列,進行結構體排序。

②結構體排序可以用sort和qsort,但是在本案例中qsort不能通過,我也不知什麼個情況,注意cmp函式的返回會值(二者不同),已及決定公升降序排序(剛好相反)。

③第一次提交答案錯誤,給出輸出是中間是空格,其實不是,就是乙個一行(坑了好久)。

**

#include#include#include#include#include#include#include#include#includeusing namespace std;

mapflag;

int counts=0;

struct node;

//qsort,返回值1和-1代表真假

/*int cmp(const void *a,const void *b)

return (*(struct node *)a).y > (*(struct node *)b).y ? -1 : 1;

}*///sort返回值1和0代表真假

int cmp(const node &a,const node &b)

//並且sort和qsort剛好是相反的

//sort 真是由大到小,qsort假是由大到小

int main()

sort(p,p+counts,cmp); // qsort(p, counts, sizeof(p[0]),cmp);

int num=0;

for(int i=0;i=0;l--)

if(l<=16) else }}

}

華為2016校園招聘上機筆試題

華為2016校園招聘上機筆試題 撲克牌大小 已通過測試,通過。思路 主要是將比較的左右牌,進行區分開來 首先將左右的牌轉化為字串,10 佔兩個字串,需要特殊處理 將 10 轉化為 1 這樣可以通過左右兩邊字元的個數多少進行區分 include include 定義輸出的字元陣列 char print...

華為2016校園招聘上機筆試題

踩的坑 q 1 5 在測試樣例中有可能 a 1 b 5,而題目樣例並沒有體現這一點 用法記錄 vector chengji 最大值的求法 踩的坑 要寫成 用法記錄 字元string的查詢 rfind find 字元的erase 傳參同substr stable sort 記錄最多8條錯誤記錄 合併錯...

華為2013校園招聘上機筆試題

上機時間兩小時,3道題 1 字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出...