LeetCode 每日一题 2748. 美丽下标对的数目
Hey编程小伙伴们👋,今天我要带大家一起解锁力扣上的一道有趣题目—— 美丽下标对的数目 - 力扣 (LeetCode)。这不仅是一次编程挑战,更是一次深入理解欧几里得算法判断互质的绝佳机会!🎉
问题简介
题目要求我们给定一个整数数组 nums,找出所有满足特定条件的下标对。这里的特定条件是:如果 nums[i] 的第一个数字和 nums[j] 的最后一个数字互质,那么我们称这对下标为“美丽下标对”。🌟
互质:数学中的“独行侠”🦸♂️
在数学的世界里,如果两个数的最大公约数(GCD)是1,我们称这两个数为互质的。换句话说,它们之间没有其他公共的“朋友”来整除它们,1是它们唯一的公约数。🕵️♂️
欧几里得算法:追溯GCD的足迹🔍
欧几里得算法是一种非常高效的计算两个正整数最大公约数的方法。它的基本思想是:两个正整数a和b(假设a>b)的最大公约数与b和a%b(a除以b的余数)的最大公约数相同。🔄
互质的判断逻辑🤔
这里我们深入探讨一下,为什么通过欧几里得算法可以判断两个数是否互质。互质的定义是两个数的最大公约数为1。欧几里得算法的核心在于它递归地将问题规模缩小,直到无法再分。当较小的数变为1时,如果此时较大的数也是1,那么这两个数就是互质的。🔑
算法步骤:
- 开始:我们有两个整数a和b,其中a是较大的数。
- 计算余数:我们计算a除以b的余数,记为r(即
a % b)。 - 递归替换:我们将b的值赋给a,将r的值赋给b,然后重复这个过程。
- 结束条件:当b变为0时,a的值就是我们要找的最大公约数。🏁
举个例子:
假设我们要判断35和18是否互质:
- 我们开始计算35除以18的余数,得到17。🔢
- 然后我们用18除以17的余数,得到1。🕒
- 最后,我们用17除以1,余数为0,此时18(原来的b)是1,这意味着35和18的最大公约数是1,所以它们是互质的。🎊
通过这种方式,欧几里得算法不仅帮助我们找到了两个数的最大公约数,也让我们能够判断这两个数是否互质。这是一种既简洁又高效的方法,非常适合在编程中实现。👩💻
代码实现(scala)
object Solution {def countBeautifulPairs(nums: Array[Int]): Int = {val pairs = for {i <- nums.indicesj <- (i + 1) until nums.length} yield (i, j)pairs.filter { case (i, j) =>val (firstDigit, secondDigit) = (nums(i).toString.charAt(0).asDigit, nums(j) % 10)gcd(firstDigit, secondDigit) == 1}.length}def gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)}
#算法 #力扣 #质数 #编程技巧
相关文章:
LeetCode 每日一题 2748. 美丽下标对的数目
Hey编程小伙伴们👋,今天我要带大家一起解锁力扣上的一道有趣题目—— 美丽下标对的数目 - 力扣 (LeetCode)。这不仅是一次编程挑战,更是一次深入理解欧几里得算法判断互质的绝佳机会!🎉 问题简介 题目要求我们给定一…...
全民拼购:引领商业新潮流,共创共赢新篇章
在当下的商业格局中,一种曾被忽视但实则具有颠覆性价值的商业理念正在逐步显露其锋芒。与传统的交易方式相悖,这一模式在我近期接触到的某个实例中,即便在用户基数尚未突破二十万之际,也能实现日均销售额逼近五千万的辉煌成绩&…...
HarmonyOS角落里的知识:一杯冰美式的时间 -- 之打字机
一、前言 模拟编辑器或者模拟输入框中文字啪啦啪啦输入的效果,往往能够吸引人们的眼球,让用户的注意力聚焦在输入的内容上,本文将和大家探讨打字机效果的实现方式以及应用。Demo基于API12。 二、思路 拆分开来很简单,将字符串拆…...
C++ 03 之 命名空间
game_kun.cpp #include "game_kun.h"void kun::atk() {cout << "吃鸡的攻击"<< endl; } game_lol.cpp #include "game_lol.h"void lol::atk() {cout << "lol的攻击"<< endl; } game_kun.h #include <…...
20个国家科学数据中心(下)
15、国家海洋科学数据中心 平台网址:https://mds.nmdis.org.cn/ 简介:国家海洋科学数据中心由国家海洋信息中心牵头,采用“主中心分中心数据节点”模式,联合相关涉海单位、科研院所和高校等十余家单位共同建设。以“建立…...
本地部署 Stable Diffusion3
6月13日,Stability AI 正式开源20亿参数版本的Stable Diffusion 3 Medium。本文将在本地部署 SD3,GPU配置如下 GPU 2080TI / 22G 安装依赖 修改 WORKSPACE 位置信息,安装ComfyUI # #title Environment Setupfrom pathlib import PathOPTIO…...
避免Tomcat调试信息泄露的最佳实践
大家好!我是小米,一个热爱分享技术的小伙伴。最近我们团队在进行网站安全扫描时,发现了一个敏感信息泄露的漏洞。经过一番努力,终于解决了这个问题。今天我想在这里分享我们的经历,希望能为大家提供一些参考和帮助。 问题背景 在处理请求过程中,如果服务器遇到运行时错…...
Linux C++
1.Linux环境配置 1.安装C和C的编译器 yum -y install gcc* // centos72.升级编译器 升级软件包: yum -y install centos-release-scl devtoolset-8-gcc*启用软件包: echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile # 每次…...
Apache Doris 基础 -- 部分数据类型及操作
您还可以使用SHOW DATA TYPES;查看Doris支持的所有数据类型。 部分类型如下: Type nameNumber of bytesDescriptionSTRING/可变长度字符串,默认支持1048576字节(1Mb),最大精度限制为2147483643字节(2gb)。大小可以通过BE配置string_type_le…...
大话C语言:第25篇 动态库
1 动态库概述 C语言动态库(也称为共享库)是在程序运行时被加载到内存中的库文件,它包含了可由多个程序共享的代码和数据。动态库在编译时不会被直接链接到目标程序中,而是在程序运行时动态加载。这种特性使得动态库具有一些优势&a…...
数据分析:RT-qPCR分析及R语言绘图
介绍 转录组分析是一种用于研究细胞或组织中所有RNA分子的表达水平的高通量技术。完成转录组分析后,科学家们通常需要通过定量实时聚合酶链式反应(qRT-PCR)来验证二代测序(Next-Generation Sequencing, NGS)结果的可靠…...
无线模块通过TCP/IP协议实现与PC端的数据传输解析
在当今的信息时代,无线通信技术的发展日新月异,为我们的工作和生活带来了极大的便利。其中,无线通信模块通过TCP/IP协议向PC端传送数据已经成为了一种常见的通信方式。 无线通信模块是一种能够在无线网络中进行数据传输的设备。它通常集成了…...
嵌入式实验---实验一 通用GPIO实验
一、实验目的 1、掌握STM32F103 GPIO程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、通过按键实现:按键按下,LED点亮;按键释放,LED熄灭。 三、实验设备和器材 电脑、Keil uVision5软件、Proteus…...
中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons
在 2022 年的 re:Invent 大会上,亚马逊云科技宣布了一项重大更新:亚马逊云科技 Marketplace 为 Amazon Elastic Kubernetes Service(Amazon EKS)提供了附加组件的支持。这一创新功能极大地丰富了 EKS 的生态系统,使用户…...
【博士每天一篇文献-算法】Progressive Neural Networks
阅读时间:2023-12-12 1 介绍 年份:2016 作者:Andrei A. Rusu,Neil Rabinowitz,Guillaume Desjardins,DeepMind 研究科学家,也都是EWC(Overcoming catastrophic forgetting in neural networks)算法的共同作者。 期刊: 未录用&am…...
深圳中小企业融资攻略,贷款方法大盘点!
中小企业融资这事,可不是一个简单的事情。资金对中小企业来说,就像血液对人体一样重要。企业发展离不开资金支持,特别是在今年这个环境下,政策对中小企业还挺友好的。今天讲解一下中小微企业常用的几种贷款方法。希望能让大家更明…...
Android的自启动
最近要用到这个,所以也花时间看看。 从分层来说,安卓的自启动也分成三种,app的自启动,framework服务的自启动,HAL服务的自启动。现在简单说说这三种吧。当然,我主要关注的还是最后一种。。。 一 App的自启…...
开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序
吴涛老矣,社区苦无64位易语言,用注入DLL增强菜单,做成VS一样的界面 终归是治标不治本,一来会报毒,二来闭源20年没更新了 开源的VB7,欢迎易语言的铁粉进群:1032313876 【Freebasic编程语言】编绎…...
github安全问题token和sshkeys
文章目录 sshkeys问题问题方法一:方法二:获取密钥添加密钥token问题问题:生成tokens设置tokenssshkeys问题 问题 当我们git clone代码时,会报如下错误,此时有2种解决方法。 git clone git@github.com:gjianw217/xboard-uboot.git Cloning into xboard-uboot... Permissio…...
超详细的selenium使用指南
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 概述 selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器…...
别再死记硬背了!动态规划解回文问题的填表顺序与状态定义保姆级图解
动态规划解回文问题:从填表顺序到状态定义的思维重塑 第一次接触回文串的动态规划解法时,我盯着那个双重循环的填表顺序发呆了半小时——为什么i要从n-1开始倒着遍历?为什么j又要从i开始正着遍历?更让我困惑的是,dp[i…...
从时频分析到信号净化:小波变换的降噪实战指南
1. 小波变换基础:从傅里叶到时频分析 第一次接触小波变换时,我和大多数工程师一样,脑子里全是傅里叶变换的影子。记得当时处理一组振动传感器数据,傅里叶变换告诉我信号里存在30Hz和50Hz的成分,但就是找不到这些频率具…...
SAP-MM:公司间交易(STO)-跨公司销售
一、引言:当销售公司没有库存,怎么办? 假设这样一个场景:你所在的集团有两个法人实体——A 公司负责市场销售,与客户关系紧密,但本身不生产也不持有库存;B 公司是生产基地,拥有所有…...
解决Windows端口转发难题:PortProxyGUI的可视化管理方案
解决Windows端口转发难题:PortProxyGUI的可视化管理方案 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI 在网络…...
OpenClaw浏览器自动化:ollama-QwQ-32B模拟登录与数据抓取
OpenClaw浏览器自动化:ollama-QwQ-32B模拟登录与数据抓取 1. 为什么选择OpenClaw进行浏览器自动化 去年我在做一个社科研究项目时,需要从十几个政府公开数据平台定期抓取更新的统计报表。最初尝试用Python写爬虫,但遇到几个头疼的问题&…...
3个步骤,让OpenWRT路由器秒变智能应用中心:iStore完全指南
3个步骤,让OpenWRT路由器秒变智能应用中心:iStore完全指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The …...
Qwen3-0.6B-FP8企业级部署教程:基于Dify打造AI应用平台
Qwen3-0.6B-FP8企业级部署教程:基于Dify打造AI应用平台 想快速搭建一个属于自己或团队的AI应用,但又觉得从零开发太复杂?今天,我们就来聊聊如何用Qwen3-0.6B-FP8这个轻量高效的模型,结合Dify这个强大的AI应用开发平台…...
ChatTTS流式音频合成实战:从原理到高并发优化
最近在做一个智能客服项目,需要将AI生成的文本实时转换成语音播报给用户。一开始我们用的是传统的TTS服务,文本传过去,等它全部合成完,再把整个音频文件返回。在用户量不大的时候还好,但一到高峰期,问题就全…...
N_m3u8DL-RE:现代流媒体下载的终极解决方案
N_m3u8DL-RE:现代流媒体下载的终极解决方案 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器,支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 在当今…...
HY-Motion 1.0在元宇宙中的应用:虚拟世界角色动画生成
HY-Motion 1.0在元宇宙中的应用:虚拟世界角色动画生成 1. 元宇宙里,角色为什么需要“活”起来 打开一个元宇宙应用,你看到的可能是一个精致的虚拟空间,但真正让人愿意停留的,从来不是静态的场景,而是能动…...
