77
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
ans = list()
t = list()
def find_all(i,j):
if j == k:
ans.append(t[:])
else:
if i <= n- k + j + 1:
for a in range(i,n+1):
t.append(a)
find_all(a+1,j+1)
t.pop()
find_all(1,0)
return ans
# 作者:haotianmingyue
# 链接:https://leetcode-cn.com/problems/combinations/solution/python-hui-su-by-haotianmingyue-0jav/
1726 同积元组
给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b = c * d 的元组 (a, b, c, d)的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a != b != c != d 。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/tuple-with-same-product
class Solution:
def tupleSameProduct(self, nums: List[int]) -> int:
n=len(nums)
freq = Counter([nums[i]*nums[j] for i in range(n) for j in range(i+1,n)])
cnt=0
for prod in freq:
if freq[prod]>0:
cnt+=freq[prod]*(freq[prod]-1)//2*8
return cnt
# 作者:yuer-flyfly
# 链接:https://leetcode-cn.com/problems/tuple-with-same-product/solution/ha-xi-biao-pai-lie-zu-he-tong-ji-yuan-zu-5q0v/
这篇博客探讨了两种不同的算法问题。第一个问题是找到给定整数n和k的所有可能的k个数的组合,使用递归回溯的方法实现了这一功能。第二个问题是在一个数组中寻找满足a*b=c*d条件的不同元组(a,b,c,d),通过计算乘积的频次并进行组合计数来解决。这两个问题都展示了在算法设计中如何有效地处理组合问题。
1790

被折叠的 条评论
为什么被折叠?



