Lintcode139 Subarray Sum Closest solution 題解

【題目描述】


Given an integer array, find a subarray with sum closest to zero. Return the indexes of the first number and last number.

給定一個整數數組,找到一個和最接近於零的子數組。返回第一個和最有一個指數。你的代碼應該返回滿足要求的子數組的起始位置和結束位置.

【題目鏈接】

www.lintcode.com/en/problem/subarray-sum-closest/

【題目解析】

具體步驟如下:

1.首先遍歷一次數組求得子串和。

2.對子串和排序。

3.逐個比較相鄰兩項差值的絕對值,返回差值絕對值最小的兩項。

爲避免對單個子串和是否爲最小情形的單獨考慮,我們可以採取類似鏈表dummy 節點的方法規避,簡化代碼實現。故初始化sum_index時需要num_size + 1個。這裏爲避免vector 反覆擴充空間降低運行效率,使用resize一步到位。sum_index即最後結果中left_index和right_index等邊界可以結合簡單例子分析確定。

【參考答案】

www.jiuzhang.com/solutions/subarray-sum-closest/




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章