要素の正方形がPythonで指定された範囲内にあるペアの数を見つけるプログラム
nums1とnums2の2つの番号のリストがあるとします。また、下と上の2つの数字があります。 lower≤nums1[i]^2 + nums2 [j]^2≤upperとなるペアの数(i、j)を見つける必要があります。
したがって、入力がnums1 =[5、3、2] nums2 =[8、12、6] lower =10 upper =50の場合、ペアは(1、2)と( 2、2)
- 10 <=3 ^ 2 + 6 ^ 2 <<50 =10 <=45 <<50
- 10 <=2 ^ 2 + 6 ^ 2 <<50 =10 <=40 <<50
これを解決するには、次の手順に従います-
- 各要素をnums1の正方形に置き換えます
- 各要素をnums2の正方形に置き換えます
- n:=nums1のサイズ
- m:=nums2のサイズ
- n> mの場合、
- nums1とnums2を入れ替える
- nとmを入れ替える
- nums2:=リストを並べ替えるnums2
- res:=0
- nums1のe1ごとに、
- st:=要素がソートされるようにnums2に挿入する左端の位置(下-e1)
- en:=要素がソートされるようにnums2に挿入する右端の位置(上-e1)
- count:=en --st
- res:=res + count
- return res
例
理解を深めるために、次の実装を見てみましょう-
from bisect import bisect_left, bisect_right def solve(nums1, nums2, lower, upper): nums1 = [i * i for i in nums1] nums2 = [i * i for i in nums2] n, m = len(nums1), len(nums2) if n > m: nums1, nums2 = nums2, nums1 n, m = m, n nums2 = sorted(nums2) res = 0 for e1 in nums1: st = bisect_left(nums2, lower - e1) en = bisect_right(nums2, upper - e1) count = en - st res += count return res nums1 = [5, 3, 2] nums2 = [8, 12, 6] lower = 10 upper = 50 print(solve(nums1, nums2, lower, upper))
入力
[5, 3, 2], [8, 12, 6], 10, 50
出力
2
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal
-
与えられた範囲内の奇数因子を持つ要素の数のためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −範囲が与えられているので、範囲内の奇数因子の数を見つける必要があります。 アプローチ 私たち全員が知っているように、すべての完全な正方形には、範囲内に奇数の因子があります。そこで、ここでは完全な平方の数を計算します。 mとnは両方とも包括的であるため、nが完全な正方形である場合のエラーを回避するために、式でn-1を使用します。 次に、以下の実装を見てみましょう- 例 # count function def count(n, m): return int(m**0.5) -