数值1 在矩阵中的最大数量是多少,现有一个尺寸为sideLength*sideLength 的矩阵M,矩阵中的每个单元格的值不是0就是1,而且知道矩阵的边长maxOnes,计算矩阵中最多可以有多少个1
class Solution(object):
def maximumNumberOfOnes(self,width: int,height: int, sideLength:int,maxOnes:int) -> int:
arr = [0 for _ in range(sideLength*sideLength)]
for i in range(height):
for j in range(width):
row = i%sideLength
col = j%sideLength
arr[row*sideLength +col]+=1
arr.sort()# 升序
ans=0
for i in range(maxOnes):
ans += arr[len(arr) -1 -i] # 1的个数
return ans
if __name__ == '__main__':
width,height,sideLength,maxOnes = 2,1,4,2
print(Solution().maximumNumberOfOnes(width,height,sideLength,maxOnes))

本文介绍了一种算法,用于计算给定边长sideLength的矩阵中,最大可能包含的1的数量,当每个单元格值为0或1且已知最大连续1的数量maxOnes。通过遍历矩阵并排序,确定最多能有多个1的子矩阵。

730

被折叠的 条评论
为什么被折叠?



