String 连续1'的最大数量;它在一个字符串中
给出了一个长度为N(最多可达10^5)的字符串,该字符串仅由0和1组成。我们必须从原始字符串中删除长度正好为K的两个子字符串,以最大化连续1的数量 例如,假设字符串为110001,K=1 所以我们可以删除两个长度为1的子字符串。这里最好的选择是删除第3位和第4位的0,并将输出作为4(因为新字符串将是11110001)String 连续1'的最大数量;它在一个字符串中,string,algorithm,optimization,brute-force,sliding-window,String,Algorithm,Optimization,Brute Force,Sliding Window,给出了一个长度为N(最多可达10^5)的字符串,该字符串仅由0和1组成。我们必须从原始字符串中删除长度正好为K的两个子字符串,以最大化连续1的数量 例如,假设字符串为110001,K=1 所以我们可以删除两个长度为1的子字符串。这里最好的选择是删除第3位和第4位的0,并将输出作为4(因为新字符串将是11110001) 如果我尝试暴力,它肯定会超时。我不知道滑动窗是否能用。有人能给我一些关于如何进行的提示吗?显然,我并不要求得到完整的答案,只是一些提示对我有用。提前感谢:)这是一个非常简单的动态编
如果我尝试暴力,它肯定会超时。我不知道滑动窗是否能用。有人能给我一些关于如何进行的提示吗?显然,我并不要求得到完整的答案,只是一些提示对我有用。提前感谢:)这是一个非常简单的动态编程解决方案 对于每个指数i,计算:
您在步骤(3)中找到的最大值就是答案。您能更精确地说明您正在最大化什么吗?@Scott Hunter我正在最大化字符串中连续1的数量。通过删除第三个零(长度为K的子串(是一个rn))和第四个零,我可以得到最大数量的连续零,即4。那么您是在最大化1的最长连续运行的长度?(准确地重述你已经说过的话无助于澄清任何事情。)你可以通过前缀和在O(n)时间内做到这一点。@scott hunter是的。连续意味着步骤3是否假定移除的子字符串是相邻的?如果不是,它是如何在O(1)时间内计算的?不,我会加一点