程序員面試修煉08 | 京東2016筆試題

上帝通常會用三種方式給曾經(jīng)付出的人們作答:他點頭給你想要的;他搖頭給你更好的;他讓你等待贩挣,然后給你最好的。——劉強東

image

名詞解釋

1王财、DHCP:(Dynamic Host Configuration Protocol卵迂,動態(tài)主機配置協(xié)議)是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,主要有兩個用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP地址绒净,或者給內(nèi)部網(wǎng)絡(luò)管理員作為對所有計算機作中央管理的手段见咒。

2、UDP:全稱是User Datagram Protocol挂疆, 意思是用戶數(shù)據(jù)報協(xié)議改览。是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議缤言,它不與對方建立連接宝当,而是直接就把數(shù)據(jù)包發(fā)送過去!是應(yīng)用程序之間的簡單通信胆萧。UDP的特性:它不屬于連接型協(xié)議庆揩,因而具有資源消耗小,處理速度快的優(yōu)點跌穗,所以通常音頻订晌、視頻和普通數(shù)據(jù)在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數(shù)據(jù)包瞻离,也不會對接收結(jié)果產(chǎn)生太大影響腾仅。比如我們聊天用的ICQ和QQ就是使用的UDP協(xié)議乒裆。

image

筆試/面試真題真題

題目描述(京東-2016筆試題)

果園里有一堆蘋果套利,一共n頭(n大于1小于9)熊來分,第一頭為小東鹤耍,它把蘋果均分n份后肉迫,多出了一個,它扔掉了這一個稿黄,拿走了自己的一份蘋果喊衫,接著第二頭熊重復(fù)這一過程,即先均分n份杆怕,扔掉一個然后拿走一份族购,以此類推直到最后一頭熊都是這樣(最后一頭熊扔掉后可以拿走0個,也算是n份均分)陵珍。問最初這堆蘋果最少有多少個寝杖。

給定一個整數(shù)n,表示熊的個數(shù)互纯,返回最初的蘋果數(shù)瑟幕,保證有解。

測試樣例:

2

返回:3

解題思路:

無法從后往前推,因為最后一個熊拿到的個數(shù)是不確定的只盹,所以就使用遍歷辣往,從n+1開始殖卑,判斷在每一次的加減的過程中站削,該數(shù)是否對n取余等于1,如果是則繼續(xù)減懦鼠,直到熊的個數(shù)等于0為止钻哩,否則就進入下一個數(shù)的判斷。

代碼如下(如果代碼頁面超出可以左右上下移動):

image
image

技術(shù)知識點

數(shù)據(jù)庫基本知識點(下)

第四節(jié)

一肛冶、相關(guān)概念和知識點

SQL語句總結(jié)

1. SELECT:將資料從數(shù)據(jù)庫中的表格內(nèi)選出街氢,兩個關(guān)鍵字:從 (FROM) 數(shù)據(jù)庫中的表格內(nèi)選出 (SELECT)。

語法為:SELECT "欄位名"FROM "表格名"

2. DISTINCT:在上述 SELECT 關(guān)鍵詞后加上一個DISTINCT 就可以去除選擇出來的欄位中的重復(fù)睦袖,從而完成求得這個表格/欄位內(nèi)有哪些不同的值的功能珊肃。

語法為:SELECT DISTINCT "欄位名" FROM "表格名"

3. WHERE:這個關(guān)鍵詞可以幫助我們選擇性地抓資料,而不是全取出來馅笙。語法為:SELECT "欄位名"FROM "表格名" WHERE "條件"

4. AND OR:上例中的 WHERE 指令可以被用來由表格中有條件地選取資料伦乔。這個條件可能是簡單的 (像上一頁的例子),也可能是復(fù)雜的董习。復(fù)雜條件是由二或多個簡單條件透過 AND 或是 OR 的連接而成烈和。

語法為:SELECT "欄位名" FROM "表格名" WHERE "簡單條件" {[AND|OR] "簡單條件"}+

5. IN:在 SQL 中,在兩個情況下會用到 IN 這個指令皿淋;這一頁將介紹其中之一:與WHERE 有關(guān)的那一個情況招刹。在這個用法下,我們事先已知道至少一個我們需要的值窝趣,而我們將這些知道的值都放入IN 這個子句疯暑。

語法為:SELECT "欄位名" FROM "表格名" WHERE "欄位名"IN ('值一', '值二', ...)

6. BETWEEN:IN 這個指令可以讓我們依照一或數(shù)個不連續(xù) (discrete)的值的限制之內(nèi)抓出資料庫中的值,而 BETWEEN 則是讓我們可以運用一個范圍 (range) 內(nèi)抓出資料庫中的值哑舒。

語法為:SELECT "欄位名" FROM "表格名"WHERE "欄位名" BETWEEN '值一' AND '值二'

7. LIKE:LIKE 是另一個在WHERE 子句中會用到的指令妇拯。基本上洗鸵, LIKE 能讓我們依據(jù)一個模式(pattern) 來找出我們要的資料越锈。

語法為:SELECT "欄位名" FROM "表格名" WHERE "欄位名"LIKE {模式}

8. ORDER BY:我們經(jīng)常需要能夠?qū)⒆コ龅馁Y料做一個有系統(tǒng)的顯示。這可能是由小往大(ascending) 或是由大往小(descending)膘滨。在這種情況下甘凭,我們就可以運用 ORDER BY 這個指令來達到我們的目的。

語法為:SELECT "欄位名" FROM "表格名 [WHERE"條件"] ORDER BY "欄位名" [ASC, DESC]

9. 函數(shù):函數(shù)允許我們能夠?qū)@些數(shù)字的型態(tài)存在的行或者列做運算吏祸,包括 AVG (平均)对蒲、COUNT (計數(shù))钩蚊、MAX (最大值)、MIN (最小值)蹈矮、SUM (總合)砰逻。

語法為:SELECT "函數(shù)名"("欄位名") FROM "表格名"

10. COUNT:這個關(guān)鍵詞能夠幫我我們統(tǒng)計有多少筆資料被選出來。

語法為:SELECT COUNT("欄位名") FROM "表格名"

11. GROUP BY:GROUP BY 語句用于結(jié)合合計函數(shù)泛鸟,根據(jù)一個或多個列對結(jié)果集進行分組蝠咆。

語法為:SELECT "欄位1",SUM("欄位2") FROM "表格名" GROUP BY "欄位1"

12. HAVING:該關(guān)鍵詞可以幫助我們對函數(shù)產(chǎn)生的值來設(shè)定條件。

語法為:SELECT "欄位1",SUM("欄位2") FROM "表格名" GROUP BY "欄位1" HAVING (函數(shù)條件)

13. ALIAS:我們可以通過ALIAS為列名稱和表名稱指定別名北滥。

語法為:SELECT "表格別名"."欄位1" "欄位別名" FROM "表格名" "表格別名"

二刚操、舉例說明SQL關(guān)鍵詞使用方法

下面為一個例子,通過它我們應(yīng)該能很好地掌握以上關(guān)鍵詞的使用方法再芋。

例子:

Student(S#,Sname,Sage,Ssex) 學生表

Course(C#,Cname,T#) 課程表

SC(S#,C#,score) 成績表

Teacher(T#,Tname) 教師表

問題:

1.查詢“001”課程比“002”課程成績高的所有學生的學號菊霜;

select a.S#

from (select s#,score from SC whereC#='001') a,

(select s#,score from SC where C#='002') b

where a.score>b.score and a.s#=b.s#;

2.查詢平均成績大于60分的同學的學號和平均成績;

select S#,avg(score)

from sc

group by S# having avg(score) >60;

3.查詢所有同學的學號济赎、姓名鉴逞、選課數(shù)、總成績司训;

selectStudent.S#,Student.Sname,count(SC.C#),sum(score)

from Student left Outer join SC onStudent.S#=SC.S#

group by Student.S#,Sname

4.查詢姓“李”的老師的個數(shù)构捡;

select count(distinct(Tname))

from Teacher

where Tname like '李%';

5.查詢沒學過“葉平”老師課的同學的學號、姓名壳猜;

select Student.S#,Student.Sname

from Student

where S# not in (select distinct( SC.S#)from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T#andTeacher.Tname='葉平');

6.查詢學過“001”并且也學過編號“002”課程的同學的學號勾徽、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S# and SC.C#=’001′andexists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');

7.查詢學過“葉平”老師所教的所有課的同學的學號统扳、姓名喘帚;

select S#,Sname

from Student

where S# in

(select S#

from SC ,Course ,Teacher

where SC.C#=Course.C# andTeacher.T#=Course.T# and Teacher.Tname=’葉平’ group by S#having count(SC.C#)=(select count(C#) from Course,Teacher whereTeacher.T#=Course.T# and Tname='葉平'));

8.查詢所有課程成績小于60分的同學的學號、姓名闪幽;

select S#,Sname

from Student

where S# not in (select Student.S# fromStudent,SC where S.S#=SC.S# and score>60);

9.查詢沒有學全所有課的同學的學號啥辨、姓名涡匀;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S#

group by Student.S#,Student.Sname havingcount(C#) <(select count(C#) from Course);

10.查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名盯腌;

select S#,Sname

from Student,SC

where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');

11.刪除學習“葉平”老師課的SC表記錄;

Delect SC

from course,Teacher

where Course.C#=SC.C# and Course.T#=Teacher.T# and Tname='葉平';

12.查詢各科成績最高和最低的分:以如下形式顯示:課程ID陨瘩,最高分腕够,最低分

SELECT L.C# 課程ID,L.score最高分,R.score 最低分

FROM SC L ,SC R

WHERE L.C# = R.C#

and

L.score = (SELECT MAX(IL.score)

FROM SC IL,Student IM

WHERE IL.C# = L.C# and IM.S#=IL.S#

GROUP BY IL.C#)

and

R.Score = (SELECT MIN(IR.score)

FROM SC IR

WHERE IR.C# = R.C#

GROUP BY IR.C# );

13.查詢學生平均成績及其名次

SELECT 1+(SELECT COUNT( distinct 平均成績)

FROM (SELECT S#,AVG(score) 平均成績

FROM SC

GROUP BY S# ) T1

WHERE 平均成績 > T2.平均成績) 名次, S# 學生學號,平均成績

FROM (SELECT S#,AVG(score) 平均成績 FROM SC GROUP BY S# ) T2 ORDER BY 平均成績 desc;

14.查詢各科成績前三名的記錄:(不考慮成績并列情況)

SELECT t1.S# as 學生ID,t1.C#as 課程ID,Score as 分數(shù)

FROM SC t1

WHERE score IN (SELECT TOP 3 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC)

ORDER BY t1.C#;

15.查詢每門功成績最好的前兩名

SELECT t1.S# as 學生ID,t1.C#as 課程ID,Score as 分數(shù)

FROM SC t1

WHERE score IN (SELECT TOP 2 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC )

ORDER BY t1.C#;

image

大廠暑期實習的招聘已到中后期,無論有沒有拿到offer都不要松懈舌劳。請相信:越努力帚湘,越幸運!小伙伴們甚淡,跟著【19應(yīng)屆生】學習技術(shù)知識大诸,我們一起加油吧~!

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市资柔,隨后出現(xiàn)的幾起案子焙贷,更是在濱河造成了極大的恐慌,老刑警劉巖贿堰,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辙芍,死亡現(xiàn)場離奇詭異,居然都是意外死亡羹与,警方通過查閱死者的電腦和手機故硅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纵搁,“玉大人吃衅,你說我怎么就攤上這事√谟” “怎么了捐晶?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妄辩。 經(jīng)常有香客問我惑灵,道長,這世上最難降的妖魔是什么眼耀? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任英支,我火速辦了婚禮,結(jié)果婚禮上哮伟,老公的妹妹穿的比我還像新娘干花。我一直安慰自己,他們只是感情好楞黄,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布池凄。 她就那樣靜靜地躺著,像睡著了一般鬼廓。 火紅的嫁衣襯著肌膚如雪肿仑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天碎税,我揣著相機與錄音尤慰,去河邊找鬼。 笑死雷蹂,一個胖子當著我的面吹牛伟端,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匪煌,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼责蝠,長吁一口氣:“原來是場噩夢啊……” “哼党巾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起霜医,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤昧港,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后支子,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體创肥,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年值朋,在試婚紗的時候發(fā)現(xiàn)自己被綠了叹侄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡昨登,死狀恐怖趾代,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丰辣,我是刑警寧澤撒强,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站笙什,受9級特大地震影響飘哨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琐凭,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一芽隆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧统屈,春花似錦胚吁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吨掌,卻和暖如春半抱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背思犁。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工代虾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留进肯,地道東北人激蹲。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像江掩,于是被迫代替她去往敵國和親学辱。 傳聞我的和親對象是個殘疾皇子乘瓤,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容