博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode之Score After Flipping Matrix(Kotlin)
阅读量:5807 次
发布时间:2019-06-18

本文共 1708 字,大约阅读时间需要 5 分钟。

问题: We have a two dimensional matrix A where each value is 0 or 1. A move consists of choosing any row or column, and toggling each value in that row or column: changing all 0s to 1s, and all 1s to 0s. After making any number of moves, every row of this matrix is interpreted as a binary number, and the score of the matrix is the sum of these numbers. Return the highest possible score.


方法: 使最终结果最大一共需要做两部操作: 1)遍历所有行的第一个元素,如果为0则反转该行,保证每个二进制数的最高位都为1 2)遍历所有列(不包含首列,因为首列为最高位),如果该列0的个数多于一半则反转该列 经过如上两部操作之后则矩阵的结果即为最大

具体实现:

import kotlin.math.absclass ScoreAfterFlippingMatrix {    fun matrixScore(A: Array
): Int { for (i in A.indices) { if (A[i][0] == 0) { for (j in A[0].indices) { A[i][j] = abs(A[i][j] - 1) } } } for (j in 1..A[0].lastIndex) { var zeroNum = 0 for (i in A.indices) { if (A[i][j] == 0) { zeroNum++ } } if (zeroNum * 2 > A.size) { for (i in A.indices) { A[i][j] = abs(A[i][j] - 1) } } } var sum = 0 for (i in A.indices) { for (j in A[0].indices) { sum += A[i][j] shl (A[0].lastIndex - j) } } return sum }}fun main(args: Array
) { val array = arrayOf(intArrayOf(0, 0, 1, 1), intArrayOf(1,0 ,1, 0), intArrayOf(1, 1, 0, 0))// val array = arrayOf(intArrayOf(0, 1), intArrayOf(1,1)) val scoreAfterFlippingMatrix = ScoreAfterFlippingMatrix() val result = scoreAfterFlippingMatrix.matrixScore(array) print("result: $result")}复制代码

有问题随时沟通

转载地址:http://boubx.baihongyu.com/

你可能感兴趣的文章
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
让前端小姐姐愉快地开发表单
查看>>
Dubbo笔记(四)
查看>>
Web前端JQuery入门实战案例
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
12月26日云栖精选夜读:CDN新品发布:阿里云SCDN安全加速开放公测
查看>>
USB 通信原理
查看>>
7zZip zip RAR iOS
查看>>
date命令的详细用法!
查看>>
分布式存储ceph集群部署
查看>>
UiAutomator源码分析之UiAutomatorBridge框架
查看>>