Leetcode 525 python 解题报告

    xiaoxiao2021-03-25  118

    525. Contiguous Array

    参考了http://blog.csdn.net/wudidi8800/article/details/60802772 的方法

    AC代码:

    class Solution(object): def findMaxLength(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums) <=1: return 0 for i in range(len(nums)): if nums[i] == 0: nums[i] = -1 sum_dict = {0:-1} sum = 0 ans = 0 for i in range(len(nums)): sum += nums[i] if sum in sum_dict: ans = max(ans,i-sum_dict[sum]) else: sum_dict[sum] = i return ans

    解题思路:

    把所有0换为-1,计算0到i所有数字的加和,如果出现加和相同的情况,如0-k与0-i的和相同,说明k+1-i之间的0,1个数相等。利用字典,找出最长的子串即可。

    法二:利用正则表达式

    import re result = re.sub(r'\s+', " ", s)
    转载请注明原文地址: https://ju.6miu.com/read-12977.html

    最新回复(0)