[leetcode]1007. 行相等的最少多米诺旋转
在一排多米诺骨牌中,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 <= A[i], B[i] <= 6
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. 行相等的最少多米诺旋转相关推荐
- LeetCode 1007. 行相等的最少多米诺旋转
文章目录 1. 题目 2. 解题 1. 题目 在一排多米诺骨牌中,A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分.(一个多米诺是两个从 1 到 6 的数字同列平铺形成的 -- ...
- leetcode1007. 行相等的最少多米诺旋转(贪心)
在一排多米诺骨牌中,A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分.(一个多米诺是两个从 1 到 6 的数字同列平铺形成的 -- 该平铺的每一半上都有一个数字.) 我们可以旋 ...
- leetcode 838. Push Dominoes | 838. 推多米诺(分析每个状态)
题目 https://leetcode.com/problems/push-dominoes/ 题解 很有趣的一道题,不难,L R 的状态组合是有限的,只要分析出每个状态应该怎么处理,然后模拟就好了. ...
- LeetCode 790. 多米诺和托米诺平铺(动态规划)
文章目录 1. 题目 2. 解题 1. 题目 有两种形状的瓷砖: 一种是 2x1 的多米诺形, 另一种是形如 "L" 的托米诺形. 两种形状都可以旋转. XX <- 多米诺X ...
- LeetCode 838. 推多米诺(模拟)
文章目录 1. 题目 2. 解题 1. 题目 一行中有 N 张多米诺骨牌,我们将每张多米诺骨牌垂直竖立. 在开始时,我们同时把一些多米诺骨牌向左或向右推. 每过一秒,倒向左边的多米诺骨牌会推动其左侧相 ...
- LeetCode 1128. 等价多米诺骨牌对的数量(哈希)
1. 题目 给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的. 形式上,dominoe ...
- Leetcode 838. 推多米诺 C++
Leetcode 838. 推多米诺 题目 一行中有 N 张多米诺骨牌,我们将每张多米诺骨牌垂直竖立. 在开始时,我们同时把一些多米诺骨牌向左或向右推. 每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻 ...
- LeetCode 790. 多米诺和托米诺平铺
LeetCode 790. 多米诺和托米诺平铺 一.题目(经典动态规划) 二.解题思路 1. 铺满2*N面积: 2. 对于第i列,有4种情况: 3. N-1 -> N 转移方程: 三.核心代码 ...
- Leetcode #790 多米诺和托米诺平铺
有两种形状的瓷砖:一种是 2x1 的多米诺形,另一种是形如 "L" 的托米诺形.两种形状都可以旋转. XX <- 多米诺 XX <- "L" 托米诺 ...
最新文章
- Django 3.1 发布,异步支持增强
- 为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?
- mac删除ssh key_SecureCRT for mac(好用的终端SSH仿真工具)
- MAC 压测工具Webbench
- html表单提交后怎么发送邮箱,Dreamweaver中用表单制作了留言板,如何将内容提交后发到指定邮箱?...
- 你们关心十三香不香,我却关心背后的质检稳不稳
- python 返回函数
- Windows核心编程_Edit操作
- springBoot笔记2
- 典型C内存空间分布图
- DVWA Insecure CAPTCHA(不安全的验证码)全等级
- linux卸载LILO命令,Linux lilo命令
- 模拟时针--微信小程序制作
- STM32-外部中断详解
- 计算机系统中软件的分类及各自的定义,计算机软件的定义和分类
- Java Socket(一)使用TCP传输字符串
- 英国霍克(HAWKER)叉车蓄电池-中国
- 【知识蒸馏】Knowledge Review
- loadrunenr11 web录制基础 windows7 ie11降级到ie9
- GIS操作之高程、坡度、坡向
热门文章
- 强烈推荐Spring Web Flow权威指南
- 以python入门教程新世界-国外旅行也不忘学习Python:Python 操作列表001
- python如何调用图片-python调用图片
- python就业方向有哪些-目前Python这么火,Python有哪些就业方向?
- python从入门到精通书-Python从入门到精通,跟着《这本书》学就够了?
- python批量下载网页文件-Python批量下载网页图片详细教程
- python的工资为什么这么低-为什么学完Python找不到工作?原因如下!
- python编程100例画图-python 画图示例源码(Turtle Graphics)
- php和python和java-python与java区别
- python基础教程是什么意思-python基础教程都有什么?