首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到最小数目?

如何找到最小数目?
EN

Stack Overflow用户
提问于 2021-04-22 19:41:28
回答 3查看 121关注 0票数 0

我有一个我需要完成的任务:

:“有N名运动员在一次掷链球中比赛。他们每人都投M球。投得最好的运动员赢了。如果有几次,那么所有尝试的结果都最好的运动员获胜。如果有几次,那么最小次数的运动员就被认为是赢家。确定比赛的获胜者人数。”

我可以找到最高的最佳投掷胜利,但我找不到最小数目的运动员。

示例输入:

代码语言:javascript
复制
4 3
4 2 7
1 2 7
1 3 5
4 1 6

示例输出:

代码语言:javascript
复制
1

到目前为止我的代码:

代码语言:javascript
复制
row,columns = map(int,input().split())
matrix = [[int(i) for i in input().split()] for j in range(row)]
numbers = []
suma = []
for i in range(row):
    numbers.append(matrix[i][0])
    sumaa = sum(matrix[i]) - matrix[i][0]
    suma.append(sumaa)
new_matrix = [numbers,suma]
print(new_matrix.index(max(new_matrix)))
EN

回答 3

Stack Overflow用户

发布于 2021-04-22 21:25:54

代码语言:javascript
复制
input = """4 3
4 2 7
1 2 7
1 3 5
4 1 6
"""

def winner(input):
    athletes = input.split("\n")
    best_throw = max(" ".join(athletes).split(" "))
    best_total = max(map(lambda s: sum(list(map(lambda n: int(n) if n != '' else 0, s.split(" ")))), athletes))
    
    best_athletes_indexes = []
    for i, athlete in enumerate(athletes):
        if best_throw in athlete.split(" ") and sum(map(int, athlete.split(" "))) == best_total:
         best_athletes_indexes.append(i)
    
    
    best_athletes_attempts = list(map(lambda i: len(athletes[i].split(" ")), best_athletes_indexes))
    
    return best_athletes_indexes[best_athletes_attempts.index(min(best_athletes_attempts))]
    

print(winner(input))

请不要让我解释这是两年来我写的第一条蟒蛇。我来自一个类型安全的世界

我的搜索历史实际上是“从列表python中删除项”python标准库是奇怪的。

票数 0
EN

Stack Overflow用户

发布于 2021-04-23 00:08:26

这是答案

代码语言:javascript
复制
a = []
b = []
row, columns = map(int, input().split())
for i in range(row):
  a.append(list(map(int, input().split())))
for i in range(row):
  b.append([max(a[i]), sum(a[i])])

print(b.index(max(b)))
票数 0
EN

Stack Overflow用户

发布于 2021-04-23 05:38:06

试试下面的代码:

代码语言:javascript
复制
row, columns = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(row)]
matrix_max_sum_elms = [[max(row), sum(row)] for row in matrix]
best_athlete_ind = matrix_max_sum_elms.index(max(matrix_max_sum_elms)) + 1
print(best_athlete_ind)

解释:

首先,我们创建一个具有输入值的列表列表,然后创建一个新的列表列表,其中每个列表包含输入值的最大值和元素之和。因此,我们接受包含最大值的列表的索引,并添加1,因为索引从0开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67219775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档