当前位置: 首页 > article >正文

day-83 最少翻转次数使二进制矩阵回文 II

在这里插入图片描述

思路
关键在于1的个数要为4的倍数,首先镜像的四个位置肯定一定为4的倍数,如果行和列为奇数则需要单独考虑,如果行和列皆为奇数,那么中心的那个数一定为0

解题过程
再单独考虑如果行和列为奇数,具体参考灵神。如果diff>0,额外把diff加入答案;如果diff=0,额外把num%4加入答案

Code

class Solution {
    public int minFlips(int[][] grid) {
        int m=grid.length;
        int n=grid[0].length;
        int ans=0;
        for(int i=0;i<m/2;i++){
            for(int j=0;j<n/2;j++){
                int t=grid[i][j]+grid[m-1-i][n-1-j]+grid[m-1-i][j]+grid[i][n-1-j];
                ans+=Math.min(t,4-t);
            }
        }
        if(m%2!=0&&n%2!=0&&grid[m/2][n/2]==1) ans++;
        int diff=0;
        int num=0;
        if(m%2!=0){
            int left=0,right=n-1;
            while(left<right){
                if(grid[m/2][left]!=grid[m/2][right]){
                    diff++;
                }else{
                    num+=grid[m/2][left]*2;
                }
                left++;
                right--;
            }
        }


        if(n%2!=0){
            int top=0,bot=m-1;
             while(top<bot){
                if(grid[top][n/2]!=grid[bot][n/2]){
                  diff++;
                }else{
                    num+=grid[top][n/2]*2;    
                }
                top++;
                bot--;
            }
        }
        return ans+(diff>0?diff:num%4);
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/minimum-number-of-flips-to-make-binary-grid-palindromic-ii/solutions/2990702/zui-shao-fan-zhuan-ci-shu-shi-er-jin-zhi-i9vh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.kler.cn/a/397371.html

相关文章:

  • 【Pip】如何清理 `pip` 包管理器 —— 完整指南
  • 数仓建设之Oracle常见语法学习
  • Spring Batch :高效处理海量数据的利器
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)
  • 【route】route add命令详解
  • 循环神经网络(RNN)全面解析
  • java学习记录05
  • 3271.哈希分割字符串
  • 第9章综合案例————众成远程教育
  • Vue中的导航守卫有哪三种?分别有什么作用
  • http.FileServer静态文件服务处理器和模板引擎使用
  • 洛谷p1781求调
  • 利用PyTorch的三元组损失Hard Triplet Loss进行嵌入模型微调
  • 十:详解HTTP的请求行
  • LeetCode 3239.最少翻转次数使二进制矩阵回文 I:遍历(行和列两种情况分别讨论)
  • w038基于SpringBoot的网上租赁系统设计与实现
  • 数据库事务介绍
  • 20241112-Pycharm使用托管的Anaconda的Jupyter Notebook
  • 周末总结(2024/11/16)
  • AJAX学习(24.11.1-24.11.14)(包含HTTP协议)
  • 管家婆工贸ERP BR039.采购订单关联MRP明细表
  • Blossom:开源私有部署的markdown笔记软件
  • Jarvis March算法详解及Python实现(附设计模式案例)
  • Rust 语言学习笔记(五)
  • 细粒度集群