vipkid資料開發 資料分析面試真題1

2021-10-21 06:36:42 字數 1152 閱讀 3868

牛牛有乙個n個數字的序列最小值最大

可以是多少?

數列:[1,2,1,5],長度為4;k = 2

結果:4

具體分法有3種,如下:

[1],[2,1,5],數字和分別為1,8,最小值為1

[1,2][1,5],數字和分別為3,6,最小值為3

[1,2,1],[5]數字和分別為4,5,最小值為4

則最小值的最大值為4

首先明白我們要找的這個值一定是處於[0,sum(a)]這個區間的乙個值,但具體是多少不知道.

那麼我們首先可以判斷mid1 = sum(a)/2這個值能不能劃分出大於等於k個組,

如果可以那麼我們其實可以縮小區間至[mid1,sum(a)],再次判斷mid2 = (sum(a)+mid1)/2 能否得到k個組.如果不可以,那自然的,只能將區間改寫為[mid1,mid2],

依次迴圈直到某一時刻.我們找到乙個能將整個組劃分為k個且對應區間的左右兩端差值極小.(理論上小於1就可以.)

那麼這個時候,自然的我們就找到了對應可以劃分出來的數字和的最大最小值.(均分情況下明顯最小值會大於別的情況嘛~)。

所以,這道題的本質還是考察面試者對於二分法的理解

def max_sum_group(k, a):

x, y = 0, sum(a)

if k == 1:

return y

while y - x > 1:

mid = (x + y) / 2

segment = 0

nowval = 0

for i in range(len(a)):

nowval += a[i]

if nowval >= mid:

segment += 1

nowval = 0

if segment >= k:

x = mid

else:

y = mid

return round((x + y) / 2)

if __name__ == '__main__':

k = 2

a = [1, 2, 1, 5]

ret = max_sum_group(k, a)

print(ret)

資料分析面經 阿里

阿里資料分析一面涼涼經 1.介紹一下學過的課程和實習經歷 2.實習經歷裡面的策略分析是怎麼做的 從資料提取,資料清洗,分析目標選擇每一步是怎樣做的 因為都是在hive上做的,用聯結關聯到各個表,面試官問如果資料量特別特別大,應該怎麼做?3.講講hive 資料倉儲的原理 4.資料傾斜怎麼解決 5.維度...

資料分析 資料分析概述

了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...

資料分析 資料分析的誤區

在資料分析的過程中,我們難免會走一些彎路,但有些彎路是可以避免的,下面我將介紹幾個資料分析過程中常見的誤區 我們一定都聽說過二戰中的乙個經典示例 軍方為了提高戰鬥機飛行員的生還率,打算在飛機上增加裝甲的厚度,但不能在所有部位加厚,這樣會喪失戰機的靈活性,於是軍方請了統計學家來研究,這些專家在一開始就...