微軟面試100題之第三題 求子陣列的最大和

2021-06-21 12:32:30 字數 390 閱讀 5692

int maxsubarray(int a, int size) else if (sum < 0)

}return max;

}接下來我給出幾個時間複雜度不同的c++演算法,僅供參考。

int maxsubsum(const vector& a)

} return maxsum;

}

可以看到此處用到了c++中的vector類,使用了for的兩重迴圈,時間複雜度為o(n*n)。

接下來給出乙個時間複雜度為o(n)的好演算法,與c語言編寫的相似。

int maxsubsum(const vector& a)

return maxsum;

}

求子陣列的最大和 微軟面試100題 第三題

題目要求 輸入乙個整型陣列,陣列裡有整數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有個乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如 輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。參考資料 劍指o...

微軟面試100題

41.求固晶機的晶元查詢程式 晶元盤由數目不詳的大小一樣的晶元組成,晶元並不一定全布滿晶元盤,照相機每次這能匹配乙個晶元,如匹配過,則拾取該晶元,若匹配不過,照相機則按測好的晶元間距移到下乙個位置。求遍歷晶元盤的演算法 求思路。兩個非降序鍊錶的並集,1 2 3 和 2 3 5 並為 1 2 3 5 ...

微軟面試100題之第6題

給你10分鐘時間,根據上排給出十個數,在其下排填出對應的十個數 要求下排每個數都是先前上排那十個數在下排出現的次數。上排的十個數如下 0,1,2,3,4,5,6,7,8,9 舉乙個例子,數值 0,1,2,3,4,5,6,7,8,9 分配 6,2,1,0,0,0,1,0,0,0 0在下排出現了6次,1...