全部评论
笨蛋模拟思路: 先看两个矩阵1的数量相同不相同,不相同直接返回-1,相同的话分类讨论。 根据两个矩阵有几个位置数字不同分为三类: ①0个位置数字不同,也就是俩矩阵a和b是一样的,直接返回0; ②4个位置数字不同,也就是所有位置上的数字都不一样,这时候需要交换两次,没有严谨求证 ③2个位置数字不同,这种情况还要再分类讨论,如果是对角线上的两个数字不同那么需要两次,如果不是对角线上的而是相邻的,那么一次就够了。
第四题咋做呀,为啥分角,边,内部三类分别求和做不对😣
新建一个矩阵3,值为矩阵2与矩阵1的差。用sum统计矩阵3各元素和。判断元素和是否不等于0,不等于0返回-1。统计矩阵2与矩阵1不同的个数。个数为4则返回2,个数为2则判断对角线相加是否为0,为0返回2,否则返回1。
我也不知道咋错,你看我的帖子
暴力分类讨论就行了
纯暴力,如果00位置不同,则ans+1然后先判断是否可以交换00和01,是则交换然后退出,不行就判断是否可以交换00和10,是则交换然后退出,否则直接输出2。 然后看01位置,如果不同,则ans+1,然后判断是否可以交换01和11,是则交换,否则直接输出2。然后看10位置。就可以确定了。 核心思想:最多交换两次
判断双方为1的位置的曼哈顿距离和
bfs打表就可以了 没多少行
有14号笔试之后让面试的吗
相关推荐
12-04 19:46
海南大学 Java 点赞 评论 收藏
分享