本文主要是介绍力扣每日一题 美丽下标对的数目 枚举 哈希,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Problem: 2748. 美丽下标对的数目
👨🏫 参考题解
🍻 暴力法
class Solution {public int countBeautifulPairs(int[] nums) {int res = 0; int n = nums.length;for(int i = 0; i < n; i++){while(nums[i] >= 10){nums[i] /= 10;}for(int j = i + 1; j < n; j++){if(gcd(nums[i], nums[j] % 10) == 1 )res++;}}return res;}int gcd(int a, int b){return b == 0 ? a : gcd(b, a % b);}
}
🍻 哈希表
class Solution {public int countBeautifulPairs(int[] nums) {int ans = 0;int[] cnt = new int[10];// cnt[i] 表示 最高位是 i 的数的个数for(int x : nums){for(int y = 1 ; y < 10; y++){if(cnt[y] > 0 && gcd(y, x % 10) == 1){ans += cnt[y];}}while(x >= 10){x /= 10;}cnt[x]++;}return ans;}int gcd(int a,int b){return b == 0 ? a : gcd(b, a % b);}
}
这篇关于力扣每日一题 美丽下标对的数目 枚举 哈希的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!