public class Solution
{
public int MinDominoRotations(int[] A, int[] B)
{
var na = A.Length;
var nb = B.Length;
if (na != nb)
{
return -;
}
var dic1 = new Dictionary<int, List<int>>();
var dic2 = new Dictionary<int, List<int>>();
for (var i = ; i <= ; i++)
{
dic1.Add(i, new List<int>());
dic2.Add(i, new List<int>());
} for (var i = ; i < na; i++)
{
var a = A[i];
dic1[a].Add(i); var b = B[i];
dic2[b].Add(i);
} var minchanges = na;
var find = false;
for (var i = ; i <= ; i++)
{
var top = dic1[i];
var bottom = dic2[i];
var temp = top.Union(bottom).Distinct();
if (temp.Count() == na)
{
minchanges = Math.Min(minchanges, na - Math.Max(top.Count(), bottom.Count()));
find = true;
}
}
return find ? minchanges : -;
}
}

思路,分别记录上部和下部的每一个点数出现的索引,然后对以此判断每一个点数的并集,是否包含了全部的索引。

这样的点数,就是可以满足在同一侧全是一样的点数。

下面就要找最小的移动次数,发现最小的移动次数是保持这个点数出现的次数多的一面不动,而把这个点数出现在另一面的牌进行翻转。

如代码所示:34行,求并集。37行,进行最小次数判断。

leetcode1007的更多相关文章

  1. [Swift]LeetCode1007. 行相等的最少多米诺旋转 | Minimum Domino Rotations For Equal Row

    In a row of dominoes, A[i] and B[i] represent the top and bottom halves of the i-th domino.  (A domi ...

随机推荐

  1. 【maven】之打包war依赖子项目jar

    比如 p-common p-core p-dao p-service p-web service项目依赖dao,dao依赖core和common,web依赖service 在使用maven tomca ...

  2. js面向对象1

    1.在空白的Object上加属性和方法: <script type="text/javascript"> function createPerson(name, qq) ...

  3. 不同安卓手机的 安卓版本不同,xpath元素也不同

    模拟器是 夜神模拟器 版本是 4.4.2 LG手机  版本是 8.0.0

  4. [转][Dapper]参数化查询慢

      参考:https://www.cnblogs.com/wy123/p/7190785.html 参考:https://www.cnblogs.com/Irving/p/3951220.html i ...

  5. Ajax的课外了解

    Ajax传入的数据的话,只能是字符串或数字,字段,其他形式的传参都不可以: Ajax只是跟后台交互也有同源策略的限制: 不是当前服务器叫跨域: Ajax也有同源策略的限制想做跨域处理,只能通过scri ...

  6. Python下发送定时消息给微信好友

    """ Description:时间可以改长一点 一分钟一个 Author:Nod Date: Record: #---------------------------- ...

  7. centos7 firewall-cmd 用活firewalld防火墙中的zone

    原文:http://www.excelib.com/article/290/show/ firewalld中zone的含义学生前面已经给大家介绍过了,说白了一个zone就是一套规则集.可是什么时候该用 ...

  8. [UE4]Cast to 转换成纯函数

    这样就变成不需要执行线了,可以直接得到转换结果

  9. Android 通过联系人姓名查询联系人号码

    <!-- 读联系人权限 --><uses-permission android:name="android.permission.READ_CONTACTS" / ...

  10. 知识点:Mysql 基本用法之触发器

    触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_ ...