当前位置: 首页 > wzjs >正文

网站建设千套素材第三方物流网站建设

网站建设千套素材,第三方物流网站建设,专业做加盟推广的公司,北京企业网站推广哪家好3480.删除一个冲突对后的最大子数组数目 难度:困难 问题描述: 给你一个整数n,表示一个包含从1到n按顺序排列的整数数组nums。此外,给你一个二维数组conflictingPairs,其中conflictingPairs[i][a,b]表示a和b形成一个…

3480.删除一个冲突对后的最大子数组数目

难度:困难

问题描述:

给你一个整数n,表示一个包含从1到n按顺序排列的整数数组nums。此外,给你一个二维数组conflictingPairs,其中conflictingPairs[i]=[a,b]表示a和b形成一个冲突对。从conflictingPairs中删除恰好一个元素。然后,计算数组nums中的非空子数组数量,这些子数组都不能同时包含任何剩余冲突对[a,b]中的a和b。返回删除恰好一个冲突对后可能得到的最大子数组数量。子数组是数组中一个连续的非空元素序列。

示例1

输入:n=4,conflictingPairs=[[2,3],[1,4]]

输出:9

解释:

从conflictingPairs中删除[2,3]。现在,conflictingPairs=[[1,4]]。

在nums中,存在9个子数组,其中[1,4]不会一起出现。它们分别是[1],[2],[3],[4],[1,2],[2,3],[3,4],[1,2,3]和[2,3,4]。

删除conflictingPairs中一个元素后,能够得到的最大子数组数量是9。

示例2

输入:n=5,conflictingPairs=[[1,2],[2,5],[3,5]]

输出:12

解释:

从conflictingPairs中删除[1,2]。现在,conflictingPairs=[[2,5],[3,5]]。

在nums中,存在12个子数组,其中[2,5]和[3,5]不会同时出现。

删除conflictingPairs中一个元素后,能够得到的最大子数组数量是12。

提示:

2<=n<=105

1<=conflictingPairs.length<=2*n

conflictingPairs[i].length==2

1<=conflictingPairs[i][j]<=n

conflictingPairs[i][0]!=conflictingPairs[i][1]

问题分析:

这个问题的解决思路比较常规,处理好下面这几个问题即可

一是输入的一个整数n,如何生成所有的子数组。函数get_all_sub_array(n)解决了这个问题,输入整数n,返回生成的所有子数组序列

二是按照删除一个冲突对元素之后的冲突对序列,从所有子数组中找出不同时包含冲突对[a,b]中的a和b的子数组,对这一问题的解决分两步进行

第一步是设计函数contain_conflict(my_array,conflict_pair),用于判断一个子数组my_array,是否同时包含confict_pair中的a和b,如果包含,返回True,否则返回False

其次设计函数get_conform_num(a,b),完成从一个子数组序列a中按给定的冲突对序列b进行筛选,得到满足条件的子数组个数

三是主程序通过依次去出冲突对序列conflictingPairs中的各个元素,然后求出每种情况得到的子数组个数,取出其中最大者,即为问题的解。

程序如下:

#检查一个数组my_array是否包含冲突对[a,b],如果包含返回True,否则返回False
def contain_conflict(my_array,conflict_pair):a=conflict_pair[0]b=conflict_pair[1]if a in my_array and b in my_array:return Trueelse:return False#获取整数n的所有子数组并返回
def get_all_sub_array(n):a=list(range(1,n+1))b=[]for i in range(1,n+1):for j in range(n-i+1):c=a[j:j+i]b.append(c)print(f'生成的所有子数组有:{b}')return b#给出一个完整子数组a,一个冲突对序列b,求符合条件(即不同时包含)的子数组数量并返回
def get_conform_num(a,b):c=[]for i in a:for j in b:if contain_conflict(i,j):breakelse:c.append(i)print('满足条件的子数组分别有:',c)return len(c)import copy
#主程序部分
n=int(input('pls input n='))
conflictingPairs=eval(input('pls input conflictingPairs='))
max_num=0
a=get_all_sub_array(n)
for i in conflictingPairs:b=copy.deepcopy(conflictingPairs)b.remove(i)print('删除元素:',i)print('删除元素之后的冲突对序列:',b)c=get_conform_num(a,b)print(f'得到满足条件的子数组数共有{c}个')if c>max_num:max_num=c
print(f'能够得到的最大子数组数量是{max_num}个')

运行实例一

pls input n=3

pls input conflictingPairs=[[3,1],[2,1]]

生成的所有子数组有:[[1], [2], [3], [1, 2], [2, 3], [1, 2, 3]]

删除元素: [3, 1]

删除元素之后的冲突对序列: [[2, 1]]

满足条件的子数组分别有: [[1], [2], [3], [2, 3]]

得到满足条件的子数组数共有4个

删除元素: [2, 1]

删除元素之后的冲突对序列: [[3, 1]]

满足条件的子数组分别有: [[1], [2], [3], [1, 2], [2, 3]]

得到满足条件的子数组数共有5个

能够得到的最大子数组数量是5个

运行实例二

pls input n=4

pls input conflictingPairs=[[2,3],[1,4]]

生成的所有子数组有:[[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [1, 2, 3], [2, 3, 4], [1, 2, 3, 4]]

删除元素: [2, 3]

删除元素之后的冲突对序列: [[1, 4]]

满足条件的子数组分别有: [[1], [2], [3], [4], [1, 2], [2, 3], [3, 4], [1, 2, 3], [2, 3, 4]]

得到满足条件的子数组数共有9个

删除元素: [1, 4]

删除元素之后的冲突对序列: [[2, 3]]

满足条件的子数组分别有: [[1], [2], [3], [4], [1, 2], [3, 4]]

得到满足条件的子数组数共有6个

能够得到的最大子数组数量是9个

运行实例三

pls input n=5

pls input conflictingPairs=[[1,2],[2,3],[4,5]]

生成的所有子数组有:[[1], [2], [3], [4], [5], [1, 2], [2, 3], [3, 4], [4, 5], [1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3, 4], [2, 3, 4, 5], [1, 2, 3, 4, 5]]

删除元素: [1, 2]

删除元素之后的冲突对序列: [[2, 3], [4, 5]]

满足条件的子数组分别有: [[1], [2], [3], [4], [5], [1, 2], [3, 4]]

得到满足条件的子数组数共有7个

删除元素: [2, 3]

删除元素之后的冲突对序列: [[1, 2], [4, 5]]

满足条件的子数组分别有: [[1], [2], [3], [4], [5], [2, 3], [3, 4], [2, 3, 4]]

得到满足条件的子数组数共有8个

删除元素: [4, 5]

删除元素之后的冲突对序列: [[1, 2], [2, 3]]

满足条件的子数组分别有: [[1], [2], [3], [4], [5], [3, 4], [4, 5], [3, 4, 5]]

得到满足条件的子数组数共有8个

能够得到的最大子数组数量是8个

养成良好的思维习惯,持之以恒,必能铸就一种优秀的思维品质。

http://www.dtcms.com/wzjs/820290.html

相关文章:

  • 网站建设页面美工黑科技涨粉app
  • 怎么查网站域名备案wordpress微信公众号开发教程
  • 海南省建设设厅官方网站企业注册视频号
  • 阜阳建设网站wordpress 薄荷主题
  • 辽宁省档案网站建设WordPress制作404页面
  • 哪个网站开发软件公司网上注册
  • 建站工具上市电子商务营销策略论文
  • 建社个人网站浙江省建设厅官网证件查询
  • 山西省建设厅政务中心网站品牌网站建设报价
  • 福建省建设银行招聘网站遂昌赶街网站
  • 江苏鑫圣建设工程有限公司网站濮阳水虎网络科技有限公司
  • 搜寻的网站有哪些企业网站优化应该怎么做
  • 丰宁县有做网站的吗?域名空间费一年多少钱
  • 西安跨境电商平台网站电商22个货源网址
  • 淄博网站建设报价免费做旅游海报的网站
  • 石家庄做手机网站推广庆阳市建设局网站
  • 网站响应速度多少合适群晖外网访问wordpress时格式变完
  • 知名高端网站建设服务商网站建设费用是多少钱
  • php智能建站系统企业一号wordpress主题
  • 网站主体负责人能查询到吗网页设计个人
  • 建手机网站的必要性自己做网站好做么
  • 中天建设有限公司官方网站php做购物网站
  • 网站建设与网页制作网站建设正版软件
  • cms建站系统wordpress数据主机名
  • 南宁本地网站有哪些如何做网络营销推广
  • 想找人帮我做网站免费1级做爰片在线观看网站
  • 软文大全800字网站排名优化培训电话
  • 哪有深圳网站页面设计做金融的喜欢逛哪些网站
  • 厚街网站建设多少钱优化搜索引擎的方法
  • 代理记账 营销型网站网页设计教学视频免费