20190812 校招筆試題 圈地運動 360

2021-09-26 02:57:06 字數 1038 閱讀 5594

圈地運動,就是用很多木棍擺在地上組成乙個面積大於0的多邊形。

小明喜歡圈地運動,於是他需要去小紅店裡面買一些木棍,期望圈出一塊地來。小紅想挑戰一下小明,所以給小明設定了一些障礙。障礙分別是:

1. 如果小明要買第i塊木棍的話,他就必須把前i-1塊木棍都買下來。

2. 買了的木棍都必須用在圈地運動中。

那麼請問小明最少買多少根木棍,才能使得木棍圍成的圖形是個面積大於0多邊形呢?

輸入描述:

第一行乙個數n,表示木棍個數。

第二行n個數,第i個數表示第i個木棍的長度ai

1<=n<=10000

1<=ai<=10000

輸出描述:

輸出乙個數,表示最少需要的木棍個數,如果無解輸出-1

輸入例子1:

36 8 10

輸出例子1:

3例子說明1:

用三根6,8,10的木棍可以組成乙個直角三角形的圖形。

# 構成 n 邊形的條件是,任意 n-1 條邊之和大於第 n 條邊。

n = int(input())

ai = list(map(int, input().split()))

l = len(ai)

result = -1

for i in range(2, l):

tmp =

tmp = ai[0:i+1]

# tmp.sort()

# if sum(tmp[: len(tmp)-1]) > tmp[len(tmp)-1]: # 較小的 n-1 條邊之和大於最大的那條邊。

if sum(tmp) > 2*max(tmp): # 等價的條件是:所有邊長度之和大於最大那條邊長度的二倍。

result = i + 1

break

print(result)

1. 構成 n 邊形的條件:任意 n-1 條邊之和大於第 n 條邊;即所有邊之和大於最長的那條邊長度的二倍。

(參考:多邊形構成問題)

2017校招筆試題

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

京東校招筆試題

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

谷歌2013校招筆試題

1 單項選擇題 1.1 如果把傳輸速率定義為單位時間內傳送的資訊量 以位元組計算 多少。關於一下幾種典型的資料傳輸速率 1.使用usb2.0快閃儲存器盤,往usb快閃儲存器盤上拷貝檔案的資料傳輸速率 2.使用100m乙太網,在區域網內拷貝大檔案時網路上的資料傳輸速率 3.使用一輛卡車拉1000塊單塊...