python-3.x - 在python中获取给定数字列表中的一对数字的函数
问题描述
我正在编写一个函数,该函数试图返回一个整数,该整数表示给定列表中匹配的数字对的数量。下面是代码。
def testfunc(n, ar):
count = []
ar.sort()
print(ar)
if len(ar) == n:
for i in range(len(ar)):
for j in range(i+1, len(ar)):
if ar[i] == ar[j]:
count.append(1)
if ar[i+1] == ar[j+1]:
count.append(1)
break
return len(count)
它在输入如下所示时有效,测试用例 1,但在测试用例 2 时失败。
测试用例1:
n = 9
ar = [10, 20, 20, 10, 10, 30, 50, 10, 20]
测试用例 2:
n = 10
ar = [1, 1, 3, 1, 2, 1, 3, 3, 3, 3]
请指教我在做什么错误。
解决方案
你在数组长度上
如果 arg[i+1] == arg[j+1]:试试这个,它应该适用于这两种情况。
def testfunc(ar):
ar.sort();
count = i = 0
while i + count < len(ar) - 1:
if ar[count + i] == ar[count + i + 1]:
count += 1
i += 1
return count
推荐阅读
- scala - 在 SCALA 中连接映射时删除重复键
- android - Recyclerview 与 searchview 解除绑定问题
- xcode - 我可以从命令行安装 Xcode 吗?
- keras - 具有 3D 卷积和卷积 LSTM 的自动编码器
- ios - AdMob 广告未显示/无法输入付款详情?
- ocaml - 如何在 OCaml 中获取 OCaml 程序的结果?(即 JAVA 中 ProcessBuilder 的 OCaml 版本)
- java - 如何在所有活动中保持变量状态?
- database - 恢复数据库时和关系已经存在时出现错误“关系不存在”
- jquery - 如何在页面加载时显示随机 div?
- python - 从 Markdown 文件中解析 YAML