点击这里查看原文 假设一个数组仅仅由1和-1组成,求该数组的和为0的最长子串的长度. 例如: {1,-1,1,-1,1,1,1} 输出:4. 昨天机试的时候做到这道题,不会做,今天思考一下. 普通的解法 枚举所有的子串,然后得到和为0的最长的长度,复杂度是O(n*n),这个应该会超时,昨天只能保存,不能运行,我猜这样应该不行,需要下面方法.其实看到这题,我想到的是最长回文子串这道题,仔细想想,还是挺像的,该搞一个传送门的. 正确的解法 解法:动态规划,dp0[i]表示以i结尾的加和为0 得到最长…