数组切三刀切分位置扔掉,分成的四段要求和相等。判断该数组是否能够四等分,时间O(N)没思路嘛请教下

【数组切三刀切分位置扔掉,分成的四段要求和相等。判断该数组是否能够四等分,时间O(N)没思路嘛请教下】 提示你一下:用个hash table,key是前i项和,value是i,hash table的查询时间是O(1)
然后从左往右遍历就可以了。假如题目要求分成相等的K段,复杂度是O(KN)。

■网友
我就想知道,那个数组里面的数是否是正整数。。。。。。

■网友
看看这篇日志 https://ying-zhang.github.io/misc/2017-03-alg-ali-4seg/ 。
记三个分割点分别为左,中,右。有两种思路:
左右同时交错向中间移动,如果第一和第四段的和相等,就移动中间的点,看看中间的能不能分割。另一种是先移动中间点,每动一步都跟着移动左右的。都只要最多扫一遍就行了,没有回头的,所以是O(n)的,也没有用辅助空间。

■网友
时间O(N)......于是交了白卷。。。。只会穷举
■网友
谢邀。阿里员工不能透露面试题答案。
■网友
这样问阿里笔试题真的好吗。


    推荐阅读