2017今日頭條實習測試
題目一、
兩陣列找相同的元素-array
時間限制:C/C++語言 1000MS;其他語言 3000MS
記憶體限制:C/C++語言 65536KB;其他語言 589824KB
題目描述:
給兩個整數(int)陣列,輸出相同的元素。
輸入
給定兩個整型陣列[a1, a2, ...., am],[b1, b2, ..., bn]
輸入格式如下,第一行給定第一個陣列的大小m,接下來的m行為其陣列元素a1 -- am,每行一個元素;
第m+1行為第二個陣列的大小n,接下來的n行為其陣列元素b1 -- bn,也是每行一個元素。示例如下:
m
a1
a2
…
am
n
b1
b2
…
bn
?
輸出
兩個陣列中相同的元素,以空格分隔在一行中顯示,顯示順序為其在第二個陣列中出現的順序。
樣例輸入
5
11
15
9
12
3
4
11
3
9
7
樣例輸出
11 3 9
#include <iostream> #include <algorithm> #include <vector> int main() { int m, n; int i, j; cin >> m; //int *a = new int[m]; vector<int> a; int temp; for(i=0; i<m; ++i) { //cin >> a[i]; cin >> temp; a.push_back(temp); } cin >> n; //int *b = new int[n]; vector<int> b; for(i=0; i<n; ++i) { //cin >> b[i]; cin >> temp; b.push_back(temp); } for(j=0; j<n; ++j) { for(i=0; i<m; ++i) { if(b[j]==a[i]) { cout<<b[j]<<' '; break; } } } cout << endl; /* for(i=0; i<m; ++i) cout << a[i]; cout << endl; for(i=0; i<n; ++i) cout << b[i]; cout << endl; */ return 0; }
通過率90%,有時間再調調。。。
-----------------------------------------------------------------------------------
題目二、
DAU 統計
時間限制:C/C++語言 2000MS;其他語言 4000MS
記憶體限制:C/C++語言 32768KB;其他語言 557056KB
題目描述:
日活躍使用者數 (DAU) 是衡量一個產品表現的重要指標。
需要編寫程式,根據給定的某一天的 N 條訪問記錄,對當天的使用者總數 M 進行統計。
每個使用者可能訪問多次。
為了方便,我們用數字 (uid) 唯一標識每個使用者。
輸入
每一行包含一個 uid,遇到 0 時認為輸入結束。
輸入共包含 N+1 行,可認為是無序的。
輸出
一個數字:去重後 uid 的數量 M。
樣例輸入
12933
111111
59220
69433
59220
111111
0
樣例輸出
4
Hint
資料範圍
0 < uid < 2^63
對於 30% 的資料,0 < N < 100,000, 0 < M < 100,000
對於 100% 的資料,0 < N < 1,000,000, 0 < M < 800,000
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<long> a;
long temp;
while(1)
{
cin >> temp;
if(temp == 0)
break;
a.push_back(temp);
}
sort(a.begin(),a.end());
a.erase(unique(a.begin(), a.end()), a.end());
cout << a.size() << endl;
return 0;
}
通過率100%,不過用set更簡單,待測。。。
------------------------------------------------------------------------------------
題目三、(麻煩 的一道題)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
char Num[10][5][3]={{{'*','*','*'},{'*',' ','*'},{'*',' ','*'},{'*',' ','*'},{'*','*','*'}},
{{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '},{' ','*',' '}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{'*',' ',' '},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*',' ','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{' ',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ',' '},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'},{' ',' ','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{'*',' ','*'},{'*','*','*'}},
{{'*','*','*'},{'*',' ','*'},{'*','*','*'},{' ',' ','*'},{'*','*','*'}}};
char Fh[6][5][3]= {{{' ',' ',' '},{' ','*',' '},{'*','*','*'},{' ','*',' '},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*',' ','*'},{' ','*',' '},{'*',' ','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ','*'},{' ','*',' '},{'*',' ',' '},{' ',' ',' '}},
{{' ',' ',' '},{'*','*','*'},{' ',' ',' '},{'*','*','*'},{' ',' ',' '}},
{{' ',' ',' '},{' ',' ',' '},{' ',' ',' '},{' ','*','*'},{' ','*','*'}}};
char result[5][70];
int i, j, k;
int a, b, c;
char d, e;
int fh;
cin >> a >> d >> b ;
//cout << a << d << b <<endl;
switch(d){
case '+':
{
fh = 0;
c = a + b;
break;
}
case '-':
{
fh = 1;
c = a - b;
break;
}
case '*':
{
fh = 2;
c = a * b;
break;
}
case '/':
{
fh = 3;
c = float(a / b);
break;
}
}
//cout << c << endl;
//cout << fh << endl;
for(i=0; i<5; ++i)
{
j=0;
int num;
for(num=0; num<3; ++num)//a
{
result[i][j]=Num[a][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//+
{
result[i][j]=Fh[fh][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//b
{
result[i][j]=Num[b][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//=
{
result[i][j]=Fh[4][i][num];
j++;
}
result[i][j++]=' ';
result[i][j++]=' ';
for(num=0; num<3; ++num)//c
{
result[i][j]=Num[c][i][num];
j++;
}
result[i][j]='\0';
}
for(i=0; i<5;++i)
{
printf("%s\n", result[i]);
}
/*
for(i=0; i<=9; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
cout << Num[i][j][k] ;
}
cout << endl;
}
}
for(i=0; i<6; ++i)
{
for(j=0; j<5; ++j)
{
for(k=0; k<3; ++k)
{
//cout << *(*(*(p+i)+j)+k);
cout << Fh[i][j][k] ;
}
cout << endl;
}
}
*/
return 0;
}
只實現了 個位 與 個位的運算,待完善,最近實驗室比較忙,沒空刷題。。。
相關推薦
2017今日頭條實習測試
題目一、 兩陣列找相同的元素-array 時間限制:C/C++語言 1000MS;其他語言 3000MS 記憶體限制:C/C++語言 65536KB;其他語言 589824KB 題目描述: 給兩個整數(int)陣列,輸出相同的元素。 輸入 給定兩個整型陣列[a1, a2,
2017 今日頭條編程題匯總:
好的 ^c class through all orm ray state 取值 頭條的2017校招開始了!為了這次校招,我們組織了一個規模宏大的出題團隊,每個出題人都出了一些有趣的題目,而我們現在想把這些題目組合成若幹場考試出來,在選題之前,我們對題目進行了盲審,並定出了
今日頭條實習面經--20180509
最近好好看了一段時間書,投了一下今日頭條實習生散招,個人感覺散招比校招要簡單得多。下午大約2點開始,歷經一面,二面,三面好像有事,結果兩面之後讓我回來了。分享一下自己的經歷吧,一二面混在一起了。 今日頭條 1. 兩個連結串列相
今日頭條實習面試
一個 har 2個 倒數 python 什麽 隊列 存儲類型 varchar python GIL 給你a, b, c, d, e 5個網站,讓你爬 網站基本一樣,程序現成的,程序:run.py 只能處理一個網站的抓取工作 原來的url = a 要求性能較好 過
2017今日頭條校招前端面試題(一面)
演算法能力如何? 給一個數組如:[[“a”,”b”,”c”],[“d”,”e”],…..]得到[ad,ae,bd,be,cd,ce],手寫實現的方法?(要求js實現) 如何將上面的改成函數語言程式設計風格? 如果陣列中出現[[“a”,”b”,”c”],[“a”,”d”]]要求去掉”aa”這種情況(即兩組所取
今日頭條實習面試總結
1、實現陣列扁平化 陣列扁平化是指將一個多維陣列變為一維陣列 [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] (1)toString & split或者jion & split 呼叫陣列的toStr
2017今日頭條前端實習生筆試題
1.下面標籤巢狀正確的是: A. <ul><p>今日頭條</p></ul> B. <a href="#"><a href="#">今日頭條</a></a> C.
2017今日頭條網招線上程式設計題(部分)
第一題 P 為 給 定 的 二 維 平 面 整 數 點 集 。 定 義 P 中 某 點 如 果 × 滿 足 P 中 任 意 點 都 不 在 × 的 右 上 方 區 域 內 ( 橫 縱 座標 都 大 於 × ) , 則 稱 其 為 “ 最 大 的 ” 。 求 出
【2017今日頭條】頭條校招(JAVA)
題目描述頭條的2017校招開始了!為了這次校招,我們組織了一個規模巨集大的出題團隊,每個出題人都出了一些有趣的題目,而我們現在想把這些題目組合成若干場考試出來,在選題之前,我們對題目進行了盲審,並定出了每道題的難度系統。一場考試包含3道開放性題目,假設他們的難度從小到大分別為
[筆試練習]今日頭條實習筆試
我天,第一題做了好久還是85%的通過率。。改日再戰。。 #include <iostream> #include <string> #include <vector> #include <map> #include <u
今日頭條2017後端工程師實習生筆試題 - 題解
進制 true 字符串 從右到左 試題 imp 最終 create head 今日頭條2017後端工程師實習生筆試題 最大映射 題意 給n(不超過50)個字符串,每個字符串(長度不超過12)由A-J的大寫字符組成。要求將每個字符映射為0-9,使得每個字符串可以看作一個整數(
頭條校招(今日頭條2017秋招真題)1——python解法
題目描述 頭條的2017校招開始了!為了這次校招,我們組織了一個規模巨集大的出題團隊。每個出題人都出了一些有趣的題目,而我們現在想把這些題目組合成若干場考試出來。在選題之前,我們對題目進行了盲審,並定出了每道題的難度係數。一場考試包含3道開放性題目,假設他們的難度從小到大分別為a, b, c,我
【演算法】今日頭條2017程式設計題
解法一: 思路: 第一步先 排序。這個大家都能想到。 第二步,三個為一組。首先看前三個 a1,a2,a3. FIRST 如果a2-a1<=10&&a3-a2<=10 則符合要求,就從第4個開始,a4,a5,a6為一
2017滴滴出行實習面試總結(測試崗,拿到offer)
fork:通過寫時拷貝機制建立子程序,子程序通過拷貝父程序的頁表與父程序共享相同的實體記憶體(被標記為只讀),當其中一方試圖修改實體記憶體上的資料時發生中斷,核心拷貝被修改頁並修改子程序的頁表使其指向新拷貝的一頁,之後對該頁上的資料進行修改不再產生中斷。因此可以理解成父程序和子程序擁有獨立的地址空間而相互不干
2018今日頭條秋招 筆試 (2017/09/10)
20170910 頭條筆試 演算法崗 【改錯題】 //首先要把握下面幾個要點: //right=n-1 => while(left <= right) => right=middle-1; //right=n =>
今日頭條2017計算機實習生c++第一道題
1、記不清楚了,大體意思就是給一個數組大小n,然後給n個數,組成一個離散序列,就是求極大值所在的族大區間,將這個最大區間的左側和右側座標x值輸出。 例如: 輸入: n n長度的整數陣列 輸出: 區間的範圍 樣例: 10 1 3 1 2 5 4 3 1 9 10 樣例輸出:
2017網易遊戲測試工程師-實習招聘線上筆試題
網易遊戲測試工程師 (一). A遊戲又要開新服了,為了在短時間內衝排名,你得儘可能多地完成遊戲任務。通過事先查攻略我們知道了所有的遊戲任務,以及每個任務的時間視窗。一旦選定了做某個任務,在所選定任務的整個持續時間內只能做這個任務,且只能等到當前任務完成才能開展
今日頭條C++後臺開發實習面試總結
一. 旋轉陣列中尋找某個target,leetcode原題。 二. 一個數組建立堆。 堆排序中,最初的步驟就是建立一個堆。之前在一些公司的筆試題上面見到一些與建堆過程相關的題目,因為當時對建堆過程有個誤解,所以經常選錯。之前一直以為是在完全二叉樹中依次插入序列中的元素,
今日頭條2017校招筆試題
問題描述: 頭條的2017校招開始了!為了這次校招,我們組織了一個規模巨集大的出題團隊,每個出題人都出了一些有趣的題目,而我們現在想把這些題目組合成若干場考試出來,在選題之前,我們對題目進行了盲審,並定出了每道題的難度系統。一場考試包含3道開放性題目,假設他們
【今日頭條2017內推】排程問題
解題思路 首先對所有的任務按照 提出時間,優先順序,所需時間進行排序,即提出時間相等時按照優先順序排序,優先順序也相等時按照所需時間進行排序。 可以維護一個長度為M的堆,M為程式設計師員的數量,這個堆中儲存的值是程式設計師完成某個任務的完成時間點,依次取