在一排多米诺骨牌中,A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分。(一个多米诺是两个从 1 到 6 的数字同列平铺形成的 —— 该平铺的每一半上都有一个数字。)

我们可以旋转第 i 张多米诺,使得 A[i] 和 B[i] 的值交换。

返回能使 A 中所有值或者 B 中所有值都相同的最小旋转次数。

如果无法做到,返回 -1.

示例 1:

输入:A = [2,1,2,4,2,2], B = [5,2,6,2,3,2]
输出:2
解释:
图一表示:在我们旋转之前, A 和 B 给出的多米诺牌。
如果我们旋转第二个和第四个多米诺骨牌,我们可以使上面一行中的每个值都等于 2,如图二所示。

示例 2:

输入:A = [3,5,1,2,3], B = [3,6,3,3,4]
输出:-1
解释:
在这种情况下,不可能旋转多米诺牌使一行的值相等。

提示:

  1. 1 <= A[i], B[i] <= 6

  2. 2 <= A.length == B.length <= 20000

使A中所有值相同或B中所有值相同,则A、B数组中某一数字数量大于等于A.length,找到该数字后,依次遍历A、B数组,就可求出最小翻转次数。

class Solution {public int minDominoRotations(int[] A, int[] B) {int []A1 = new int[7];int []B1 = new int[7];int a = 0;int counta = 0;int countb = 0;for(int i = 0;i < A.length;i++){A1[A[i]]++;B1[B[i]]++;}for(int i = 1;i < 7;i++)if(A1[i] + B1[i] >= A.length)a = i;if(a == 0)return -1;for(int i = 0;i < A.length;i++){if(A[i] != a && B[i] != a)return -1;else if(A[i] == a && B[i] != a)countb++;else if(A[i] != a && B[i] == a)counta++;}return counta < countb?counta:countb;}
}

转载于:https://www.cnblogs.com/liusandao/p/10727869.html

[leetcode]1007. 行相等的最少多米诺旋转相关推荐

  1. LeetCode 1007. 行相等的最少多米诺旋转

    文章目录 1. 题目 2. 解题 1. 题目 在一排多米诺骨牌中,A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分.(一个多米诺是两个从 1 到 6 的数字同列平铺形成的 -- ...

  2. leetcode1007. 行相等的最少多米诺旋转(贪心)

    在一排多米诺骨牌中,A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分.(一个多米诺是两个从 1 到 6 的数字同列平铺形成的 -- 该平铺的每一半上都有一个数字.) 我们可以旋 ...

  3. leetcode 838. Push Dominoes | 838. 推多米诺(分析每个状态)

    题目 https://leetcode.com/problems/push-dominoes/ 题解 很有趣的一道题,不难,L R 的状态组合是有限的,只要分析出每个状态应该怎么处理,然后模拟就好了. ...

  4. LeetCode 790. 多米诺和托米诺平铺(动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 有两种形状的瓷砖: 一种是 2x1 的多米诺形, 另一种是形如 "L" 的托米诺形. 两种形状都可以旋转. XX <- 多米诺X ...

  5. LeetCode 838. 推多米诺(模拟)

    文章目录 1. 题目 2. 解题 1. 题目 一行中有 N 张多米诺骨牌,我们将每张多米诺骨牌垂直竖立. 在开始时,我们同时把一些多米诺骨牌向左或向右推. 每过一秒,倒向左边的多米诺骨牌会推动其左侧相 ...

  6. LeetCode 1128. 等价多米诺骨牌对的数量(哈希)

    1. 题目 给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的. 形式上,dominoe ...

  7. Leetcode 838. 推多米诺 C++

    Leetcode 838. 推多米诺 题目 一行中有 N 张多米诺骨牌,我们将每张多米诺骨牌垂直竖立. 在开始时,我们同时把一些多米诺骨牌向左或向右推. 每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻 ...

  8. LeetCode 790. 多米诺和托米诺平铺

    LeetCode 790. 多米诺和托米诺平铺 一.题目(经典动态规划) 二.解题思路 1. 铺满2*N面积: 2. 对于第i列,有4种情况: 3. N-1 -> N 转移方程: 三.核心代码 ...

  9. Leetcode #790 多米诺和托米诺平铺

    有两种形状的瓷砖:一种是 2x1 的多米诺形,另一种是形如 "L" 的托米诺形.两种形状都可以旋转. XX <- 多米诺 XX <- "L" 托米诺 ...

最新文章

  1. Django 3.1 发布,异步支持增强
  2. 为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?
  3. mac删除ssh key_SecureCRT for mac(好用的终端SSH仿真工具)
  4. MAC 压测工具Webbench
  5. html表单提交后怎么发送邮箱,Dreamweaver中用表单制作了留言板,如何将内容提交后发到指定邮箱?...
  6. 你们关心十三香不香,我却关心背后的质检稳不稳
  7. python 返回函数
  8. Windows核心编程_Edit操作
  9. springBoot笔记2
  10. 典型C内存空间分布图
  11. DVWA Insecure CAPTCHA(不安全的验证码)全等级
  12. linux卸载LILO命令,Linux lilo命令
  13. 模拟时针--微信小程序制作
  14. STM32-外部中断详解
  15. 计算机系统中软件的分类及各自的定义,计算机软件的定义和分类
  16. Java Socket(一)使用TCP传输字符串
  17. 英国霍克(HAWKER)叉车蓄电池-中国
  18. 【知识蒸馏】Knowledge Review
  19. loadrunenr11 web录制基础 windows7 ie11降级到ie9
  20. GIS操作之高程、坡度、坡向

热门文章

  1. 强烈推荐Spring Web Flow权威指南
  2. 以python入门教程新世界-国外旅行也不忘学习Python:Python 操作列表001
  3. python如何调用图片-python调用图片
  4. python就业方向有哪些-目前Python这么火,Python有哪些就业方向?
  5. python从入门到精通书-Python从入门到精通,跟着《这本书》学就够了?
  6. python批量下载网页文件-Python批量下载网页图片详细教程
  7. python的工资为什么这么低-为什么学完Python找不到工作?原因如下!
  8. python编程100例画图-python 画图示例源码(Turtle Graphics)
  9. php和python和java-python与java区别
  10. python基础教程是什么意思-python基础教程都有什么?