第一题:
n=int(input())
ball=list(map(int,input().split()))
jishu=[]
ball_set=set(ball)
for i in ball_set:
jishu.append(ball.count(i))
ball_min=min(jishu)
result=[]
panduan=1
if ball_min<2:
panduan=0
for i in jishu:
if i%ball_min!=0:
panduan=0
for i in jishu:
a=i/ball_min
result.append(a)
if panduan==0:
print(0)
else:
print(int(sum(result)))
第二题:求矩阵最长的增长长度
import numpy as np
a=int(input())
b=int(input())
m=[]
for i in range(b):
m.append(list(map(int,input().split())))
m=np.array(m)
def longestIncreasingPath(matrix):
"""
:type matrix: List[List[int]]
:rtype: int
"""
a = len(matrix)
dic = {}
nums_max = 1
if a == 0:
nums_max = 0
else:
b = len(matrix[0])
for i in range(a):
for j in range(b):
dic[(i,j)] = matrix[i][j]
v = dic.keys()
nums1 = [[1 for i in range(b)] for j in range(a)]
dic = sorted(dic.items(),key = lambda x:x[1])
for k in dic:
i = k[0][0]
j = k[0][1]
if (i+1,j) in v and matrix[i+1][j]<matrix[i][j] and nums1[i][j]<nums1[i+1][j]+1:
nums1[i][j] = nums1[i+1][j] + 1
if (i,j+1) in v and matrix[i][j+1]<matrix[i][j] and nums1[i][j]<nums1[i][j+1]+1:
nums1[i][j] = nums1[i][j+1] +1
if (i-1,j) in v and matrix[i-1][j]<matrix[i][j] and nums1[i][j]<nums1[i-1][j]+1:
nums1[i][j] = nums1[i-1][j] +1
if (i,j-1) in v and matrix[i][j-1]<matrix[i][j] and nums1[i][j]<nums1[i][j-1]+1:
nums1[i][j] = nums1[i][j-1] + 1
nums_max = max(nums_max,nums1[i][j])
return nums_max
print(longestIncreasingPath(m))