给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 ,返回仅包含 1 的最长(连续)子数组的长度-笔试面试资料

这是qklbishe.com第9582 篇笔试面试资料
提供答案分析,通过本文《给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 ,返回仅包含 1 的最长(连续)子数组的长度-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 ,返回仅包含 1 的最长(连续)子数组的长度

给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 ,返回仅包含 1 的最长(连续)子数组的长度 nk_xqy
public static int max=0; 	public static void process(int[] arr,int index,int k){ 		if(k==0||index==arr.length){//如果已经将k个0变成1了,或者到达了字符串末尾了 			int tmp=0;//开始统计计数连续1的个数 			for(int i=0;i<arr.length;i++){ 				if(arr[i]==1){ 					tmp++; 					max=Math.max(max, tmp); 				} 				else{//一旦遇到0,之前的计数清零 					tmp=0; 				} 			} 			return ;//结束 		} 		//回溯的思想 		for(int j=index;j<arr.length;j++){ 			if(arr[j]==0){ 				arr[j]=1; 				process(arr,index+1,k-1); 				arr[j]=0; 			} 		} 	} 	 	public static void main(String[] args) { 		// TODO Auto-generated method stub 		int[] arr={1,1,1,0,0,0,1,1,1,1,0}; 		process(arr,0,2); 		System.out.println(max); 		 	}

回溯法;尝试将每个0变成1,一旦将k个0变成1,或者到达字符串的结尾,就开始统计连续的1的子数组的最大长度。

今天 15:26:14 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 ,返回仅包含 1 的最长(连续)子数组的长度-笔试面试资料

提供最优质的资源集合

立即查看 了解详情