• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

题目

连续1s III的最大数量

给定一个二进制数组nums和一个整数k,如果可以翻转到k个0,则返回数组中最大数量的连续1。

解题思路

双指针,右指针主动移动,并纠正它。零只有在不满足条件时才会被强制移动。

最终结果是区间长度。

代码

类别解决方案{

公共:

int longestOnes(vector nt nums,int k) {

int n=nums . size();

int left=0;

int zeros=0;

int RES=0;

for(int right=0;rightn右)

{

if(nums

==0)

{

零;

}

while(zerosk)

{

if(nums

==0)

{

零-;

}

左;

}

res=max(res,右-左1);

}

返回res

}

};

类别解决方案:

def longestOnes(self,nums: List[int],k: int) - int:

n=len(nums)

res=0

零=0

左=0

对于范围(n):内的I

if (nums==0):

零=1

而zerosk:

if(nums

==0):

零-=1

左=1

res=max(res,i-left 1)

返回资源

题目

替换后最长的重复字符。

给你一个字符串S和一个整数k,你可以选择字符串中的任何一个字符,把它改成任何其他大写的英文字符。此操作最多可执行k次。

完成上述操作后,返回包含相同字母的最长字符串的长度。

解题思路

和上一个问题不同的是,这里左指针移动的条件是要替换的字符大于给定的字符;

你需要计算要替换的字符。

等于间隔长度-间隔重复次数最多的字符数。

用数组存储字符出现的次数,用字符大小作为索引下标,索引下标对应的值就是数字;

代码

类别解决方案{

公共:

int字符替换(string s,int k) {

向量arr(26,0);

int maxIdx=0,left=0;

int n=s . size();

int RES=0;

for(int right=0;rightn右)

{

int curIdx=s

-' A ';

arr[curIdx];

//用最多的间隔字符更新索引。

if(arr[curIdx]arr[maxIdx])

{

maxIdx=curIdx

}

//计算需要替换的数量

int recnt=(right-left 1)-arr[maxIdx];

如果(接收)

{

arr[s

-' A ']-;

左;

}

if(recnt=k)

{

res=max(res,左右1);

}

}

返回res

}

};

计算机编程语言

类别解决方案:

定义字符替换(self,s: str,k: int) - int:

pre=[0]*26

res,left,maxIdx,curIdx=0,0,0,0

n=透镜

对于范围(n):中的右侧

curIdx=ord(s

)-ord('A ')

打印(curIdx)

pre[curIdx]=1

if(pre[curIdx]pre[maxIdx]):

maxIdx=curIdx

recnt=(右-左1)-pre[maxIdx]

if (recntk):

pre[ord(s

)-ord('A')] -=1

左=1

if (recnt=k):

分辨率=最大值(分辨率,左右1)

返回资源

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now