题目

有一个二维矩阵 A 其中每个元素的值为 0 或 1 。

移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。

在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。

返回尽可能高的分数。

示例:

输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]
输出:39
解释:
转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]
0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15 = 39

解题思路

  • 先通过行调整将最高位设置为1
  • 第一列都是1了,接下来只做列处理从第一列调整到最后一列,调整的原则,每列的0的数量操过1就把这一列反转,否则保持原始的状态。

代码

class Solution {
public:int calBinaryToDicimal(const vector<int> &val){int count = 0;for (int i = 0; i < val.size(); i++){count =2 * count + val[i];}return count ;}int matrixScore(vector<vector<int>>& A) {for(int i = 0; i < A.size(); i++){if (A[i][0] < 1){for (int j = 0; j < A[i].size(); j++){A[i][j] = 1 - A[i][j] ;}}}for (int c = 1; c< A[0].size(); c++){int count = 0 ;for (int i = 0; i < A.size(); i++){count = count + A[i][c];}if (count < (A.size() - count)){for (int i = 0; i < A.size(); i++){A[i][c] = 1 -  A[i][c];}}}int ret = 0;for (int i = 0; i < A.size(); i++){ret = ret + calBinaryToDicimal(A[i]);}return ret;}
};

letecode 编程学习(22)相关推荐

  1. 嵌入式Linux系统编程学习之二常用命令

    嵌入式Linux系统编程学习之二常用命令 文章目录 嵌入式Linux系统编程学习之二常用命令 前言 一.常用命令 1.su(用户切换) 2.useradd(添加用户) 3.passwd(修改密码) 4 ...

  2. [.net 面向对象编程基础] (22) 事件

    [.net 面向对象编程基础] (22)  事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...

  3. 基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  4. java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

  5. VBA和Python双语对照,Excel编程学习更简单

    Excel VBA和Python双语对照学习 目录 第1章 Excel编程与Python编程概述 1 1.1 关于Excel脚本编程 1 1.1.1 为什么要进行Excel脚本编程 1 1.1.2 选 ...

  6. 9个国外最佳免费编程学习一站式网站,谁用谁知道!

    前言 尽管可以说付费内容和课程有助于取得更高的成效,但由于经济能力和回报率等种种原因仍有很多朋友无法选择付费学习 所以在本文中,我将介绍九个最佳免费学习网站以及分享我整理的一些免费学习资料,这些网站和 ...

  7. Python学习22:Python之禅和PEP 8规范

    笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章转载需注明,如果喜欢请点赞+关注,感谢支持! 导读:Python之禅和PEP 8规范,值得所有 ...

  8. 2021 年最新的个人录制的前后端真正的免费编程学习视频

    2021 年最新的个人录制的前后端真正的免费编程学习视频 我这里有视频教程,全部是我自己辛苦录的,有兴趣的可以看下. 诱人的 React 免费视频教程 - 基础篇(14 个视频 - 已完结) 诱人的 ...

  9. shell脚本编程学习笔记7(XDL)——字符处理命令和条件判断

    shell编程学习笔记--字符处理命令和条件判断 1,字符处理 [root@localhost ~]# sort [选项] 文件名 选项: -f: 忽略大小写 -n: 以数值型进行排序,默认使用字符串 ...

最新文章

  1. js 判断多个关键词_2020关键词优化,做好这三点效果立现!
  2. easyui 行编辑修改
  3. macos 安装 brew
  4. WORD2010自动编号后,目录那里编号和文字中间有很大的空格,怎么
  5. java 设计作业——学生类的基本练习
  6. 未来计算机将具有图像识别 定理证明,[单选] 低温计与高温计所测温度的分界线为()。...
  7. 新手产品经理的职业规划
  8. 计算机数值数据的编码,计算机数值数据编码(原码,反码,补码,移码)
  9. linkedhashmap中关于LRU算法的实现
  10. tp886n路由器是第几代?
  11. 计算机网络超详细笔记(一):计网概述
  12. go1.5源代码安装
  13. [unity独立游戏]多人游戏插件
  14. 串口调试精灵的使用和串口程序调试技巧
  15. 鲁大师4月安卓新机性能/流畅榜:ROG游戏手机7摘得性能桂冠 vivo登顶流畅榜
  16. 我的世界服务器无线刷物品,《我的世界》1.12无限刷物品方法图文教学
  17. python3两个三阶矩阵相乘_两个三阶矩阵相乘的例子和方法!急!
  18. 计算机视觉基础--边缘检测
  19. testng单元测试-diagnose依赖compet找不到compet的类
  20. 《中国制造2025》重点领域技术创新路线图(2017年版)发布会在北京召开

热门文章

  1. 金山卫士界面源码解读及界面库分离(1)
  2. 大型门户网站建设方案及实现注意事项
  3. Linux 基础指令英文全称
  4. wpa_supplicant.c的方法wpa_supplicant_add_iface解析
  5. 开关电源:TL431与线性光耦4N35组成的电压反馈电路。此时TL431内部的运放做误差放大器而不是比较器,和组成5V参考电压时候作用稍微不同的理解
  6. 苹果悄悄推出了一个改变一切的新银行杀手储蓄账户
  7. 什么是局域网、广域网、城域网?
  8. tomcat-如何调试源码?
  9. 一文带你学会0编程基础做木马免杀
  10. WorkPlus移动数字化平台,把企业应用全部装入一个APP