1004. 最大连续1的个数 III

柔光的暖阳◎ 2023-10-05 19:54 15阅读 0赞

给定一个由若干 01 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。

返回仅包含 1 的最长(连续)子数组的长度。

示例 1:

  1. 输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
  2. 输出:6
  3. 解释:
  4. [1,1,1,0,0,1,1,1,1,1,1]
  5. 粗体数字从 0 翻转到 1,最长的子数组长度为 6

示例 2:

  1. 输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
  2. 输出:10
  3. 解释:
  4. [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
  5. 粗体数字从 0 翻转到 1,最长的子数组长度为 10

提示:

  1. 1 <= A.length <= 20000
  2. 0 <= K <= A.length
  3. A[i]01

通过次数29,484提交次数49

  1. import java.util.Stack;
  2. public class Solution1004 {
  3. public int longestOnes(int[] A, int K) {
  4. int max = 0;
  5. int temp = 0;
  6. String strA = "";
  7. String strSub = "";
  8. String strSubRepK = "";
  9. String strSubRepALL = "";
  10. for (int i = 0; i < A.length; i++) {
  11. strA = strA + String.valueOf(A[i]);
  12. }
  13. //System.out.println(strA);
  14. for (int i = 0; i < strA.length(); i++) {
  15. for (int j = i + 1; j < strA.length()+1; j++) {
  16. strSub = strA.substring(i, j);
  17. //System.out.println(strSub);
  18. strSubRepK = strSub;
  19. for (int l = 0; l < K; l++) {
  20. strSubRepK = strSubRepK.replaceFirst("0", "1");
  21. }
  22. strSubRepALL = strSub.replaceAll("0", "1");
  23. if (strSubRepK.equals(strSubRepALL)) {
  24. temp = strSub.length();
  25. if (temp > max) {
  26. max = temp;
  27. }
  28. }
  29. }
  30. }
  31. return max;
  32. }
  33. public static void main(String[] args) {
  34. Solution1004 s = new Solution1004();
  35. //int[] A = {0, 0, 0, 1 };
  36. //int K = 4;
  37. int[] A = {1,1,1,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1};
  38. int K = 144;
  39. System.out.println(s.longestOnes(A, K));
  40. }
  41. }

中英文超过,感觉功能实现了。

发表评论

表情:
评论列表 (有 0 条评论,15人围观)

还没有评论,来说两句吧...

相关阅读