我有一个作业,我必须计算列表的邻接分数,而只能编辑3行代码。
该功能上下文中的邻接分数如下:
给定输入[0, 1, 1, 1, 0, 0]
由于存在3对具有相同值的对,因此邻接分数将为3。即索引:(1,2),(2,3)和(4,5)。
该函数的目标是,如果数组中的一个数字取反,则计算邻接分数。该代码为某些输入生成正确的数字,为其他输入生成错误的数字。输入始终是6个整数(0或1)的列表 这是代码:
def solution(A):
n = len(A)
result = 0
for i in range(n - 1):
if (A[i] == A[i + 1]):
result = result + 1
r = 0
for i in range(n):
count = 0
if (i > 0):
if (A[i - 1] != A[i]):
count = count + 1
else:
count = count - 1
if (i < n - 1):
if (A[i + 1] != A[i]):
count = count + 1
else:
count = count - 1
r = max(r, count)
return result + r
答案 0 :(得分:0)
我不确定您的代码,但是下面的几行会创建结果,您正在寻找:
import numpy as np
a = np.array([0,1,1,1,0,0])
pairs = np.lib.stride_tricks.as_strided(a, shape = (len(a)-1, 2), strides = a.strides*2)
print(pairs)
print(np.sum(pairs[:,0] == pairs[:,1]))