假设我们在数组p的阵列中有三种不同类型的杯子,在数量为q和m的阵列中有碟,我们必须检查是否可以将杯子和架子整齐地排列。
可以说,如果满足以下条件,则杯子和碟子的布置会整齐:1.没有架子可以容纳杯子和碟子。2.一个自我最多可以容纳5个杯子。3.一个自我最多可容纳10个碟。
因此,如果输入像p = [4,3,7] q = [5,9,10] m = 11,那么输出将为True,因为杯子总数= 14,需要3个架子,所以总碟子数= 24,需要3个架子。因此,所需的总架子数= 3 + 3 = 6,小于给定的架子数m。
为了解决这个问题,我们将遵循以下步骤-
sum_p:= 0,sum_q:= 0
对于0到p大小范围内的i,执行
sum_p:= sum_p + p [i]
对于0到q大小的i,执行
sum_q:= sum_q + q [i]
m_p:=(sum_p + 4)/ 5
m_q:=(sum_q + 9)/ 10
如果m_p + m_q <= m,则
返回True
除此以外,
返回False
让我们看下面的实现以更好地理解-
def is_valid(p, q, m): sum_p = 0 sum_q = 0 for i in range(0, len(p)): sum_p += p[i] for i in range(0,len(q)): sum_q += q[i] m_p = (sum_p + 5 - 1) / 5 m_q = (sum_q + 10 - 1) / 10 if(m_p + m_q <= m): return True else: return False p = [4, 3, 7] q = [5, 9, 10] m = 11 print(is_valid(p ,q ,m))
[4, 3, 7], [5, 9, 10], 11
输出结果
True