python盒中取球_在Python中找到占据给定球的盒子的位置

假设我们有两个数组A和B。A的大小是行数,A [i]是第i行中的框数。B是球的阵列,其中B [i]表示球上的数字。给定该球i(值B [i])将放置在从开始位置为B [i]的盒子中。我们必须找到与每个B [i]相对应的框的行和列。

因此,如果输入像A = [3,4,5,6],B = [1,3,5,2],那么输出将是[(1,1),(1,3),( 2,2),(1,2)]为B [0] = 1,则框位置将为第一行,第一列B [1] = 3,则框位置将为第一行,第三列,B [2] = 5,则框位置将为第二行,第二列,B [3] = 2,则框位置将为第一行,第二列

为了解决这个问题,我们将遵循以下步骤-len_a:= A的大小

len_b:= B的大小

对于范围在1到len_a中的我,执行A [i]:= A [i] + A [i-1]

对于范围在0到len_b之间的i,执行box_num:= B [i]

box_num:= B [i]-A [行-1]

row:=一个索引,我们可以在其中插入B [i]来保持A排序

如果行> = 1,则

除此以外,

显示一对(行+ 1,box_num)

示例

让我们看下面的实现以更好地理解-import bisect

def get_position(A, B):

len_a = len(A)

len_b = len(B)

for i in range(1, len_a):

A[i] += A[i - 1]

for i in range(len_b):

row = bisect.bisect_left(A, B[i])

if row >= 1:

box_num = B[i] - A[row - 1]

else:

box_num = B[i]

print ((row + 1, box_num))

A = [3, 4, 5, 6]

B = [1, 3, 5, 2]

get_position(A, B)

输入值[3, 4, 5, 6], [1, 3, 5, 2]

输出结果(1, 1)

(1, 3)

(2, 2)

(1, 2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值