给定数组如:[0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0]
此数组中共有5个1:翻转(i, j)这段的元素如[5, 9] 数组变为[0, 1, 0, 1, 1,1, 1, 1, 1,1, 1, 1, 0, 0]
此时数组中有10个1
解题思路:根据原始数组生成一个新的数组,要求原来的元素是0的变为1,是1的变为-1,因为原来是0
翻转后使以的个数增加了1,原来的元素是1,翻转后使1的个数减少了1.
然后利用最大子数组求和的动态规划解法,时间复杂度O(n),空间复杂度O(n)其实空间复杂度完全可以优化
为O(1)只要做个判断当为0时翻译成1,当为1时翻译成-1,如果原始数组可以变动,也可以直接在其上更改