zoukankan      html  css  js  c++  java
  • 找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

    #找出一个多维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点
    list1 = [
        [2,4,6,7],
        [1,3,5,8],
        [4,6,7,9]]    
    
    row_maxlist=[]
    column_minlist=[]
    for i in range(len(list1)):
        max_row=max(list1[i])
        print('max_row:',max_row)
        for j in range(len(list1[i])):
            if list1[i][j]==max_row:
                row_maxlist.append((i,j))
    
    #把二维列表转置了一下,用同样的方法求各列最小值;然后记录(j,i)
    list2=[]
    for j in range(len(list1[0])):
        temp=[]
        for i in range(len(list1)):
            temp.append(list1[i][j])
        list2.append(temp)
    print(list2)
    
    for i in range(len(list2)):
        min_row=min(list2[i])
        for j in range(len(list2[i])):
            if list2[i][j]==min_row:
                column_minlist.append((j,i))  ##然后记录(j,i)
    
    print('row_maxlist',row_maxlist)
    print('column_minlist',column_minlist)
    result=set(row_maxlist)&set(column_minlist) ##求交集
    
    print(result)
  • 相关阅读:
    vue中使用第三方UI库的移动端rem适配方案
    前端规范--eslint standard
    从上往下打印二叉树
    栈的压入,弹出序列
    随机森林
    LR
    顺时针打印矩阵
    包含min函数的栈
    树的子结构
    合并两个有序链表
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10267119.html
Copyright © 2011-2022 走看看