LC每日一题|20240620 - 2748. 美丽下标对的数目
给你一个下标从 0 开始的整数数组
nums。如果下标对i、j满足0 ≤ i < j < nums.length,如果nums[i]的 第一个数字 和nums[j]的 最后一个数字 互质 ,则认为nums[i]和nums[j]是一组 美丽下标对 。返回
nums中 美丽下标对 的总数目。对于两个整数
x和y,如果不存在大于 1 的整数可以整除它们,则认为x和y互质 。换而言之,如果gcd(x, y) == 1,则认为x和y互质,其中gcd(x, y)是x和y的 最大公因数 。
提示:
2 <= nums.length <= 1001 <= nums[i] <= 9999nums[i] % 10 != 0
题目等级:Easy
解题思路
Easy题~
gcd常考,需要背下来~
AC代码
class Solution {
fun countBeautifulPairs(nums: IntArray): Int {
var res = 0
for (i in nums.indices) {
for (j in i + 1 until nums.size) {
val a = nums[i].toString()[0] - '0'
val b = nums[j] % 10
if (gcd(a, b) == 1) res++
}
}
return res
}
fun gcd(a: Int, b: Int): Int {
if (a % b == 0) return b
return gcd(b, a % b)
}
}