携程笔试

携程笔试第二题求大佬解答 01矩阵 最小交换次数😢#秋招##校招#
全部评论
笨蛋模拟思路: 先看两个矩阵1的数量相同不相同,不相同直接返回-1,相同的话分类讨论。 根据两个矩阵有几个位置数字不同分为三类: ①0个位置数字不同,也就是俩矩阵a和b是一样的,直接返回0; ②4个位置数字不同,也就是所有位置上的数字都不一样,这时候需要交换两次,没有严谨求证 ③2个位置数字不同,这种情况还要再分类讨论,如果是对角线上的两个数字不同那么需要两次,如果不是对角线上的而是相邻的,那么一次就够了。
3 回复 分享
发布于 2022-09-14 21:30 江苏
第四题咋做呀,为啥分角,边,内部三类分别求和做不对😣
1 回复 分享
发布于 2022-09-14 21:54 上海
新建一个矩阵3,值为矩阵2与矩阵1的差。用sum统计矩阵3各元素和。判断元素和是否不等于0,不等于0返回-1。统计矩阵2与矩阵1不同的个数。个数为4则返回2,个数为2则判断对角线相加是否为0,为0返回2,否则返回1。
1 回复 分享
发布于 2022-09-15 00:42 陕西
我也不知道咋错,你看我的帖子
点赞 回复 分享
发布于 2022-09-14 21:27 重庆
暴力分类讨论就行了
点赞 回复 分享
发布于 2022-09-14 21:35 甘肃
纯暴力,如果00位置不同,则ans+1然后先判断是否可以交换00和01,是则交换然后退出,不行就判断是否可以交换00和10,是则交换然后退出,否则直接输出2。 然后看01位置,如果不同,则ans+1,然后判断是否可以交换01和11,是则交换,否则直接输出2。然后看10位置。就可以确定了。 核心思想:最多交换两次
点赞 回复 分享
发布于 2022-09-14 21:42 陕西
判断双方为1的位置的曼哈顿距离和
点赞 回复 分享
发布于 2022-09-14 21:47 浙江
bfs打表就可以了 没多少行
点赞 回复 分享
发布于 2022-09-14 22:05 湖北
有14号笔试之后让面试的吗
点赞 回复 分享
发布于 2022-09-18 09:14 辽宁

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务