2017京東校招終結者問題

2021-07-31 04:49:54 字數 2160 閱讀 2333

題目描述

收到情報,有批新造的機械人要運輸到前線。小c將去破壞機械人的運輸。小c將雷射炮放置在公路的一旁,等運輸車經過的時候發射(假設雷射炮一定可以射穿車輛)。由於能源有限,雷射炮只能發射兩次。可以認為雷射炮放在座標軸的原點處,並向y軸正方向發射。每輛運輸車可以看作是乙個矩形,起始的x軸座標為xi ,所有的車均位於第一象限,長度為li,速度為1,朝x軸負方向運動。即經過t時間後,該車車頭的x座標為xi-t,車尾座標為xi-t+li 。只要打中車的任何乙個部分就算擊中。

請你算算,他在哪兩個時刻發射,才能摧毀最多的運輸車。

第一行乙個正整數 n ( 2≤n≤200 ),表示運輸個的數量。

接下來n行,每行兩個整數x和l(1≤x、l≤109),表示一輛車的x軸座標和長度。輸出

輸出最多可以摧毀的運輸車數量。

樣例輸入 4

2 23 1

5 2樣例輸出 4

思路所謂開兩槍打中最多的機械人,意思就是用平行於y軸的兩條直線,看最多能和多少方塊相交。那麼問題就轉化為求每個方塊和其他方塊的相交次數,然後選取其中最大的兩個。要注意,為了避免重複計數,我們在求得第一塊方塊後,應該刪除其和與其相交的方塊。

python**

#ecoding=utf-8

"""京東2017實習生筆試程式設計題:終結者

思路如下圖,本題實為找到兩條豎線使得,其相交的節點最多。所以第一步為判斷當前結點是否與其他節點相交,得到節點間的相交矩陣。

第二步找到相交矩陣中和其他節點相交次數最多的結點,第三步去掉已經打掉的節點,第四步重複第二步。

結果測試用例全部通過

"""def get_jiao(begain_1,len_1,begain_2,len_2):

end_1 = begain_1+len_1

end_2 = begain_2+len_2

if begain_1 > end_2:

return 0

elif end_1 < begain_2:

return 0

else:

return 1

def get_max_count(zhuan_list):

zhuankuan = zhuan_list

reslut = [[0 for col in range(len(zhuankuan))] for row in range(len(zhuankuan))]

#得到相交矩陣

for i in range(len(zhuankuan)):

for j in range(len(zhuankuan)):

jiao = get_jiao(zhuankuan[i][0],zhuankuan[i][1],zhuankuan[j][0],zhuankuan[j][1])

reslut[i][j] = jiao

#得到每個節點的相交節點個數

jiao_count = {}

for i in range(len(reslut)):

jiao_count[i] = sum(reslut[i])

sorted(jiao_count.items(),key=lambda item:item[1])

#得到相交個數最多的節點

jiao_max_count = jiao_count[0]

return reslut,jiao_max_count,jiao_count.keys()[0]

zhuankuan =

reslut,max_count,code_removw = get_max_count(zhuankuan)

#去掉第一***果

line_temp = reslut[code_removw]

new_zhuan_list =

for i in range(len(zhuankuan)):

if line_temp[i] == 0:

second_count = 0

if len(new_zhuan_list) != 0:

second_count = get_max_count(new_zhuan_list)[1]

print max_count+second_count

京東校招筆試題

題目摘自牛客網 給定字串 ascii碼0 255 陣列,請在不開闢額外空間的情況下刪除開始和結尾處的空格,並將中間的多個連續的空格合併成乙個。例如 i am a little boy.變成 i am a little boy 語言不限,但不要用偽 作答,函式輸入輸出請參考如下的函式原型 void f...

2017校招筆試題

題目 輸入乙個字串從左到右遍歷,如果遇到三個連續相同的子串就將這個子串刪除,並將原串剩下的部分拼接到一起,重複上述過程,直到字串中沒有可以刪除的子串。eg 輸入 aaabccdddcb aabbbabbba 輸出 bb a重要 從乙個字串中刪除乙個子串,必須將原字串的內容strcpy到開闢的數字中 ...

2023年校招題

牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要...