给定一个0和1的数组,我们最多可以将K个值从0更改为1。
返回仅包含1的最长(连续)子数组的长度。
例1:
Input: A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
Output: 6
Explanation:
[1,1,1,0,0,1,1,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
例2:
Input: A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
Output: 10
Explanation:
[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
注:
1 <= A.length <= 20000
0 <= K <= A.length
A[i] is 0 or 1
https://leetcode.com/problems/max-consecutive-ones-iii/
这是问题链接。在第一个测试用例中,我得到了输出9,但应该是6。我不知道哪里出了问题?
public static int f(int arr[],int n,int tar)
{
int st=0,maxc=0,maxf=0;
//tar=tar+1;
for(int i=0;i<n;i++)
{
int se=i-st-maxc;
if(arr[i]==1)
maxc++++;
while(i-st-maxc>tar)
{
maxf=Math.max(maxf, i-st);
st++;
}
}
return maxf+1;
}
public static void main(String[] args)
{
Scanner p=new Scanner(System.in);
int n,target;
n=p.nextInt();
target=p.nextInt();
int arr[]=new int[n];
for(int i=0;i<n;i++)
{
arr[i]=p.nextInt();
}
int ans=f(arr,n,target);
System.out.println(ans);
}
您不需要提供数组的大小,因为您可以从数组中获取大小。如果使用更好的变量名,代码的可读性会更好。此外,您可以使用if语句来检查更改的值,而不是计数。
这是解决方案的示例:
public static int longestOnes(int[] A, int K) {
var maxCount = 0;
for (int i = 0; i < A.length; i++) {
var count = 0;
var k = 0;
for (int j = i; j < A.length; j++) {
if (A[j] == 1) {
count++;
}
if (A[j] == 0) {
if (k >= K) {
if (count > maxCount) {
maxCount = count;
}
break;
}
count++;
k++;
}
}
}
return maxCount;
}
抱歉,如果不允许这样做。这是我第一次问问题。无论如何,我应该实现一个程序,根据文本读取等级。 “实施一个程序,根据以下内容计算理解某些文本所需的大致年级水平。文本:恭喜!今天是你的一天。你要去很棒的地方!你走了,走了!3 年级 在完成代码之后。每次我编译它时,它都会给我一个异常,即我除以零。几乎就像在我要求用户输入文本后,它根本不被读取,字母计数保持在零。我不知道如何绕过它。下面是我导入java.
作为一名链表数据结构的学习者,我正在练习Leetcode问题“反向链表”,我有自己的解决方案,但不知道为什么它是错误的,有专家可以分享一些指导吗?真的很感激! Leetcode问题: 反转单链接列表。 例: 输入:1- 输出: 5- 我的代码: 然而,上述解决方案是错误的,但可以通过在“temp.next=prev”和“head=head.next”之间切换位置进行纠正,如下所示: 对我来说,切换
我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 输入三角形的三条边
我试图使java编译类文件,但它抛出了一个错误,如何修复它。
这是我的代码。它正在传递问题语句中给出的测试用例。问题链接:http://www.spoj.com/problems/ACPC10D/tri[i][j]存储从tri[0][1]到达索引(i, j)的最小值。
我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 进入三角形的三个边