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

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

在一排多米诺骨牌中,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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-domino-rotations-for-equal-row
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 找出数量 >= n 的数 x
  • 检查每个位置的两个数:
  1. 都等于 x 无需调换,记录次数 r2
  2. 都不等于 x ,不满足题意
  3. 有一个等于 x,记录旋转次数 r1
    答案是 min⁡(r1,n−r2−r1)\min(r1, n-r2-r1)min(r1,nr2r1)
class Solution {
public:int minDominoRotations(vector<int>& A, vector<int>& B) {int n = A.size();vector<int> count(7, 0);for(int i = 0; i < n; i++) {count[A[i]]++;//计数count[B[i]]++;}int num = -1;for(int i = 1; i <= 6; ++i){if(count[i] >= n)//个数达标的数num = i;}if(num == -1)return -1;int rotation = 0, notrotation = 0;for(int i = 0; i < n; ++i){if(A[i] == num && B[i] == num)notrotation++;//两个都是,不需要交换else if(A[i] != num && B[i] != num)return -1;//都不等,不存在else if(A[i] == num)rotation++;}return min(rotation, n-notrotation-rotation);}
};

304 ms 100.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive内置函数大全

Hive内置函数大全 目录 Hive内置函数大全 1.复合类型构造函数 2 复合类型操作符 3 数值计算函数 4 日期函数 5 条件函数 6 字符串函数 7 汇总统计函数&#xff08;UDAF&#xff09; 8 表格生成函数(UDTF) 9 类型转换函数 10 数学函数 11 数学运算 12 逻辑运算 13…

python-mysql超简单银行转账

1首先先建数据库bank&#xff0c;数据结构表的名称为accoment&#xff1a; 2.python与mysql交互代码如下&#xff1a; # coding utf-8 # 1.导入模块 from pymysql import * import sys import pymysql# 2.接受命令行参数 if __name__ __main__:source_acctid 11target_acctid…

Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞

漏洞名称&#xff1a;Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞CNNVD编号&#xff1a;CNNVD-201311-054发布时间&#xff1a;2013-11-06更新时间&#xff1a;2013-11-06危害等级&#xff1a; 漏洞类型&#xff1a;信息泄露威胁类型&#xff1a;本地CVE编号&#x…

LeetCode 948. 令牌放置(贪心)

文章目录1. 题目2. 解题1. 题目 你的初始能量为 P&#xff0c;初始分数为 0&#xff0c;只有一包令牌。 令牌的值为 token[i]&#xff0c;每个令牌最多只能使用一次&#xff0c;可能的两种使用方法如下&#xff1a; 如果你至少有 token[i] 点能量&#xff0c;可以将令牌置为…

Python 中操作 MySQL 步骤

1.引入模块 在py文件中引入pymysql模块 from pymysql import *2.Connection 对象 用于建立与数据库的连接 创建对象&#xff1a;调用connect()方法 connconnect(参数列表)参数host&#xff1a;连接的mysql主机&#xff0c;如果本机是localhost参数port&#xff1a;连接的m…

nacos配置中心配置已经常见错误总结

&#x1f4bb;目录 前言1、基础架构2、依赖3、配置文件3.1、bolg-product配置文件3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.1.3、nacos远程配置 3.2、bolg-system3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.2.3、nacos远程配置 4、测试…

Hive解题思路

Hive解题思路 1 相关知识讲解 1.1 HQL语句的语法 sql语句的语法&#xff1a; select ..... from .... join ..... where .....group by ... having...order by|sort by|cluster by|distribute by .... &#xff08;1&#xff09;group by&#xff1a;按照某些字段的值进行…

tcl/tk demo

环境及版本说明: OSX10.9 tclsh -> tclsh8.5 wish -> wish8.5 查看本机运行环境: 1 which wish; 2 /usr/bin/wish 1 which tclsh; 2 /usr/bin/tclsh Demo功能说明: 用户登录窗口,输入用户名,密码.与文件中存储内容校验,如果相等,则提示"登录成功",否则提示&qu…

Hive高级操作

Hive高级操作 1 Hive的数据类型 1.1 原子数据类型 &#xff08;1&#xff09;Hive 是用 Java 开发的&#xff0c;Hive 里的基本数据类型和 java 的基本数据类型也是一一对应的&#xff0c; 除了 String 类型。 &#xff08;2&#xff09;有符号的整数类型&#xff1a;TINYIN…

05.序列模型 W2.自然语言处理与词嵌入(作业:词向量+Emoji表情生成)

文章目录作业1&#xff1a;1. 余弦相似度2. 单词类比3. 词向量纠偏3.1 消除对非性别词语的偏见3.2 性别词的均衡算法作业2&#xff1a;Emojify表情生成1. Baseline model: Emojifier-V11.1 数据集1.2 模型预览1.3 实现 Emojifier-V11.4 在训练集上测试2. Emojifier-V2: Using L…

LeetCode 688. “马”在棋盘上的概率(DP)

文章目录1. 题目2. 解题1. 题目 已知一个 NxN 的国际象棋棋盘&#xff0c;棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0)&#xff0c;最右下角的记为 (N-1, N-1)。 现有一个 “马”&#xff08;也译作 “骑士”&#xff09;位于 (r, c) &#xff0c;并打算进行…

LeetCode 第 36 场双周赛(304/2204,前13.8%)

文章目录1. 比赛结果2. 题目1. LeetCode 5515. 设计停车系统 easy2. LeetCode 5516. 警告一小时内使用相同员工卡大于等于三次的人 medium3. LeetCode 5518. 给定行和列的和求可行矩阵 medium4. LeetCode 5517. 找到处理最多请求的服务器 hard1. 比赛结果 做出来3题&#xff0…

数据库实例:用户注册

1.根据结构创建表的脚本如下 createtable py_users( id int unsigned auto_increment not null primary key, uname varchar(20) not null, upwd char(40) not null, is_delete bit not null default 0 ); 如下流程图&#xff0c;接下来的代码就按照这个逻辑来写 2.创建user…

HBase原理

目录 HBase原理 1 HBase架构 2 HBase中的核心概念 3 HBase的存储机制 4 HBase的寻址机制 5 HBase的读写流程 6 HBase的设计 7 HBase和Hive的整合 HBase原理 1 HBase架构 HBase的架构为主从架构&#xff0c;HMaster为主节点&#xff0c;HRegionServer为从节点 &#x…

数据库实例:用户登录

如下遍流程图&#xff0c;接下来的代码就按照这个逻辑来写 创建user_login.py文件&#xff0c;代码如下 #codingutf-8 from MySQLdb import* from hashlib importsha1 if __name____main__: try: #接收输入用户名、密码 unameraw_input(请输入用户名&…

数据库实例:mysql与mongo结合用户登录

加入mongodb后登录逻辑如下图&#xff0c;将图中nosql的位置换为mongodb即可 用户数据存储的集合名称为py_users&#xff0c;文档格式为{uname:用户名,upwd:密码} 将原来MySQL操作的代码封装到一个方法中&#xff0c;代码如下 def mysql_login(): #mongodb中没有则到mysql中…

LeetCode 1609. 奇偶树(层序遍历)

文章目录1. 题目2. 解题1. 题目 如果一棵二叉树满足下述几个条件&#xff0c;则可以称为 奇偶树 &#xff1a; 二叉树根节点所在层下标为 0 &#xff0c;根的子节点所在层下标为 1 &#xff0c;根的孙节点所在层下标为 2 &#xff0c;依此类推。偶数下标 层上的所有节点的值都…

数据的特征工程

数据的特征工程 1 什么是数据的特征工程 特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程&#xff0c;从而提高了对未知数据的模型准确性。 特征工程的意义&#xff1a;将直接影响模型的预测结果。 2 数据的来源与类型 2.1 数据的来源 企业日益积累…

数据库实例:mysql与redis结合用户登录

加入redis后登录逻辑如下图&#xff0c;将图中nosql的位置换为redis即可 用户数据存的键为用户名&#xff0c;值为密码 将原来MySQL操作的代码封装到一个方法中&#xff0c;代码如下 defmysql_login(): #redis中没有则到mysql中查询 sqlselect upwd from py_users wher…

LeetCode 1610. 可见点的最大数目(atan2函数求夹角)

文章目录1. 题目2. 解题1. 题目 给你一个点数组 points 和一个表示角度的整数 angle &#xff0c;你的位置是 location &#xff0c;其中 location [posx, posy] 且 points[i] [xi, yi] 都表示 X-Y 平面上的整数坐标。 最开始&#xff0c;你面向东方进行观测。你 不能 进行…