LeetCode 800. 相似 RGB 颜色

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 暴力枚举
      • 2.2 独立枚举

1. 题目

RGB 颜色用十六进制来表示的话,每个大写字母都代表了某个从 0 到 f 的 16 进制数。

RGB 颜色 “#AABBCC” 可以简写成 “#ABC” 。例如,"#15c" 其实是 “#1155cc” 的简写。

现在,假如我们分别定义两个颜色 "#ABCDEF""#UVWXYZ",则他们的相似度可以通过这个表达式 -(AB - UV)^2 - (CD - WX)^2 - (EF - YZ)^2 来计算。

那么给定颜色 “#ABCDEF”,请你返回一个与 #ABCDEF 最相似的 7 个字符代表的颜色,并且它是可以被简写形式表达的。(比如,可以表示成类似 “#XYZ” 的形式)

示例 1:
输入:color = "#09f166"
输出:"#11ee66"
解释: 
因为相似度计算得出 -(0x09 - 0x11)^2 -(0xf1 - 0xee)^2 - (0x66 - 0x66)^2 = -64 -9 -0 = -73
这已经是所有可以简写的颜色中最相似的了注意:
color 是一个长度为 7 的字符串
color 是一个有效的 RGB 颜色:对于仍和 i > 0,color[i] 都是一个在 0 到 f 范围的 16 进制数
假如答案具有相同的(最大)相似度的话,都是可以被接受的
所有输入、输出都必须使用小写字母,并且输出为 7 个字符

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

2. 解题

2.1 暴力枚举

class Solution {
public:string similarRGB(string color) {string s1 = color.substr(1,2);string s2 = color.substr(3,2);string s3 = color.substr(5,2);int a = stoi(s1,0,16);//转成10进制int b = stoi(s2,0,16);int c = stoi(s3,0,16);vector<string> num = {"00","11","22","33","44","55","66","77","88","99","aa","bb","cc","dd","ee","ff"};int i, j, k, x, y, z, maxsimilarity = INT_MIN, sim;string ans;for(i = 0; i < 16; ++i)for(j = 0; j < 16; ++j)for(k = 0; k < 16; ++k){x = stoi(num[i],0,16);//转成10进制y = stoi(num[j],0,16);z = stoi(num[k],0,16);sim = -(a-x)*(a-x)-(b-y)*(b-y)-(c-z)*(c-z);if(sim > maxsimilarity){maxsimilarity = sim;ans = "#"+num[i]+num[j]+num[k];}}return ans;}
};

136 ms 6.3 MB

2.2 独立枚举

  • 每两位是独立的,分别找出最相近的,拼接在一起
class Solution {
public:string similarRGB(string color) {string s1 = color.substr(1,2);string s2 = color.substr(3,2);string s3 = color.substr(5,2);int a = stoi(s1,0,16);//转成10进制int b = stoi(s2,0,16);int c = stoi(s3,0,16);vector<string> num = {"00","11","22","33","44","55","66","77","88","99","aa","bb","cc","dd","ee","ff"};int maxsimilarity1 = INT_MIN, maxsimilarity2 = INT_MIN,maxsimilarity3 = INT_MIN, sim1, sim2, sim3;string ans1, ans2, ans3;for(int i = 0, n; i < 16; ++i){n = stoi(num[i],0,16);//转成10进制sim1 = -(a-n)*(a-n);sim2 = -(b-n)*(b-n);sim3 = -(c-n)*(c-n);if(sim1 > maxsimilarity1){maxsimilarity1 = sim1;ans1 = num[i];}if(sim2 > maxsimilarity2){maxsimilarity2 = sim2;ans2 = num[i];}if(sim3 > maxsimilarity3){maxsimilarity3 = sim3;ans3 = num[i];}}return '#'+ans1+ans2+ans3;}
};

0 ms 6.3 MB


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

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

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

相关文章

mysql 图片base64_关于图片的Base64编码

什么是Base64编码Base64编码是一种图片处理格式&#xff0c;通过特定的算法将图片编码成一长串字符串&#xff0c;在页面上显示的时候&#xff0c;可以用该字符串来代替图片的url属性。base64编码就是长得像下面这样子的代码&#xff1a;thunder://QUFodHRwOi8vd3d3LmJhaWR1LmN…

LeetCode 243. 最短单词距离

文章目录1. 题目2. 解题1. 题目 给定一个单词列表和两个单词 word1 和 word2&#xff0c;返回列表中这两个单词之间的最短距离。 示例: 假设 words ["practice", "makes", "perfect", "coding", "makes"] 输入: word1 “…

mysql load character_mysql load data Invalid utf8mb4 character string: ”

使用mysql的 load data 导入数据到 数据库中&#xff1a;LOAD DATA LOCAL INFILE /tmp/2982/20200424/user.csvINTO TABLE t_user CHARACTER SET utf8mb4 FIELDS TERMINATED BY ,LINES TERMINATED BY \r\nIGNORE 1 LINES(userName, userNo, age, homeAddr)SET province 浙江省…

LeetCode 1426. 数元素(哈希set)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 arr&#xff0c; 对于元素 x &#xff0c;只有当 x 1 也在数组 arr 里时&#xff0c;才能记为 1 个数。 如果数组 arr 里有重复的数&#xff0c;每个重复的数单独计算。 示例 1&#xff1a; 输入&#xff1a;arr [1,2,3] …

mysql 默认page大小_MySQL innodb_page_size

原标题&#xff1a;MySQL innodb_page_size墨墨导读&#xff1a;Page是MySQL Innodb存储的最基本结构&#xff0c;也是Innodb磁盘管理的最小单位&#xff0c;了解page的一些特性&#xff0c;可以更容易理解MySQL。innodb_page_size作为innodb和OS交互单位。文件系统对文件的buf…

LeetCode 266. 回文排列(计数)

文章目录1. 题目2. 解题1. 题目 给定一个字符串&#xff0c;判断该字符串中是否可以通过重新排列组合&#xff0c;形成一个回文字符串。 示例 1&#xff1a; 输入: "code" 输出: false示例 2&#xff1a; 输入: "aab" 输出: true示例 3&#xff1a; 输入…

LeetCode 1150. 检查一个数是否在数组中占绝大多数(二分查找)

文章目录1. 题目2. 解题2.1 暴力2.2 二分查找1. 题目 给出一个按 非递减 顺序排列的数组 nums&#xff0c;和一个目标数值 target。 假如数组 nums 中绝大多数元素的数值都等于 target&#xff0c;则返回 True&#xff0c;否则请返回 False。 所谓占绝大多数&#xff0c;是指…

VirtualBox的Linux虚拟机访问Windows7的文件

第一步&#xff1a; 安装 VirtualBox 增强工具 点击确定&#xff0c;稍等片刻&#xff0c;VirtualBox 的增强功能就可以安装完毕。 第2步&#xff1a;设置要共享给Linux 虚拟机的文件夹&#xff08;目录&#xff09; 点击右下角的“分配数据空间” 点击“添加” 选择要共享的路…

LeetCode 1118. 一月有多少天(闰年判断)

文章目录1. 题目2. 解题1. 题目 指定年份 Y 和月份 M&#xff0c;请你帮忙计算出该月一共有多少天。 示例 1&#xff1a; 输入&#xff1a;Y 1992, M 7 输出&#xff1a;31示例 2&#xff1a; 输入&#xff1a;Y 2000, M 2 输出&#xff1a;29示例 3&#xff1a; 输入&am…

vue warning如何去掉_详解 vue 组件三大核心概念

前言本文主要介绍属性、事件和插槽这三个vue基础概念、使用方法及其容易被忽略的一些重要细节。如果你阅读别人写的组件&#xff0c;可以从这三个部分展开&#xff0c;它们可以帮助你快速了解一个组件的所有功能。本文的代码请猛戳https://github.com/ljianshu/Blog&#xff0c…

LeetCode 1133. 最大唯一数

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 A&#xff0c;请找出并返回在该数组中仅出现一次的最大整数。 如果不存在这个只出现一次的整数&#xff0c;则返回 -1。 示例 1&#xff1a; 输入&#xff1a;[5,7,3,9,4,9,8,3,1] 输出&#xff1a;8 解释&#xff1a; 数组…

技术演讲的技巧和经验

导读&#xff1a;如果你在编程大会上发表演讲&#xff0c;不论是开放式的BarCamp或是像OSCON那样精心组织的大型会议&#xff0c;你只有很短的一段时间将脑中的信息传达给听众&#xff0c;所以请仔细把握。 技术会议的成本非常昂贵&#xff0c;不仅仅是经济上的成本。即使像Bar…

如何使用kali来进行一次ddos攻击

本文章用于记录自己的学习路线&#xff0c;不用于其他任何途径! ! ! 哈喽啊&#xff01;又是好久不见&#xff0c;本博主在之前发过一个ddos攻击的介绍。 emm…虽然那篇文章也提到了ddos攻击的方式&#xff0c;但太过于简陋&#xff0c;好像也没有什么用&#xff0c;so&#…

LeetCode 256. 粉刷房子(DP)

文章目录1. 题目2. 解题1. 题目 假如有一排房子&#xff0c;共 n 个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其与相邻的两个房子颜色不能相同。 当然&#xff0c;因为市场上不同颜色油漆的价格不同&…

LeetCode 1099. 小于 K 的两数之和(二分查找)

文章目录1. 题目2. 解题2.1 暴力2.2 二分查找1. 题目 给你一个整数数组 A 和一个整数 K&#xff0c;请在该数组中找出两个元素&#xff0c;使它们的和小于 K 但尽可能地接近 K&#xff0c;返回这两个元素的和。 如不存在这样的两个元素&#xff0c;请返回 -1。 示例 1&#…

sonarqube使用mysql_SonarQube的安装、配置与使用

SonarQube是管理代码质量一个开放平台&#xff0c;可以快速的定位代码中潜在的或者明显的错误&#xff0c;下面将会介绍一下这个工具的安装、配置以及使用。准备工作&#xff1b;1、jdk(不再介绍)2、sonarqube&#xff1a;http://www.sonarqube.org/downloads/3、SonarQubeScan…

windows phone7 学习笔记14——地理位置服务与反应性扩展框架

使用Location Service能帮助开发者为windows Phone 开发具备位置感知&#xff08;Location-Aware)功能的应用程序。比如很多导航的软件&#xff0c;查找附近吃饭、娱乐甚至厕所的应用程序&#xff0c;都是基于这个服务的。 我们有3种方法来获取设备的位置。GPS&#xff0c;移动…

LeetCode 1228. 等差数列中缺失的数字

文章目录1. 题目2. 解题1. 题目 有一个数组&#xff0c;其中的值符合等差数列的数值规律&#xff0c;也就是说&#xff1a; 在 0 < i < arr.length - 1 的前提下&#xff0c;arr[i1] - arr[i] 的值都相等。 我们会从该数组中删除一个 既不是第一个 也 不是最后一个的值…

离散系数的计算公式_如何求不同变量之间的离散程度

变异系数前面介绍的极差、方差和标准差都是反映一组数值变异程度的绝对值&#xff0c;其数值的大小&#xff0c;不仅取决于数值的变异程度&#xff0c;而且还与变量值水平的高低、计量单位的不同有关。所以&#xff0c;不宜直接利用上述变异指标对不同水平、不同计量单位的现象…

LeetCode 252. 会议室(排序)

文章目录1. 题目2. 解题1. 题目 给定一个会议时间安排的数组&#xff0c;每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],...] (si < ei)&#xff0c;请你判断一个人是否能够参加这里面的全部会议。 示例 1: 输入: [[0,30],[5,10],[15,20]] 输出: false示例 2: 输…