当前位置: 首页 > 编程笔记 >

程序查找唯一四个索引的数量,它们可以从python中的四个列表中生成小于目标的总和

景震博
2023-03-14
本文向大家介绍程序查找唯一四个索引的数量,它们可以从python中的四个列表中生成小于目标的总和,包括了程序查找唯一四个索引的数量,它们可以从python中的四个列表中生成小于目标的总和的使用技巧和注意事项,需要的朋友参考一下

假设我们有四个数字A,B,C和D,并且还有另一个数字目标。我们必须找到不同唯一索引i,j,k,l的数量,以使A [i] + B [j] + C [k] + D [l]≤目标。

因此,如果输入像A = [3,2] B = [5,3] C = [1] D = [2,3] target = 9,那么输出将是3,因为我们可以选择以下内容组合:[3、3、1、2] [3、3、1、2] [2、3、1、3]

为了解决这个问题,我们将按照以下步骤操作:

  • temp_list:=一个新列表

  • 对于0到A的范围内的i,执行

    • 在temp_list的末尾插入(A [i] + B [j])

    • 对于范围0到B大小的j,执行

    • 排序列表temp_list

    • 回答:= 0

    • 对于0到C大小的i,执行

      • sum_cd:= C [i] + D [j]

      • sum_ab:=目标-sum_cd

      • ans:= ans + temp_list中其和<= sum_ab的元素

      • 对于范围0到D大小的j,执行

    • 返回ans

    让我们看下面的实现以更好地理解:

    示例

    from bisect import bisect_right
    
    class Solution:
       def solve(self, A, B, C, D, target):
          temp_list = []
          for i in range(len(A)):
             for j in range(len(B)):
                temp_list.append(A[i] + B[j])
    
          temp_list.sort()
    
          ans = 0
          for i in range(len(C)):
             for j in range(len(D)):
                sum_cd = C[i] + D[j]
                sum_ab = target - sum_cd
    
                ans += bisect_right(temp_list, sum_ab)
    
          return ans
    
    ob = Solution()A = [3, 2]
    B = [5, 3]
    C = [1]
    D = [2, 3]
    target = 9
    print(ob.solve(A, B, C, D, target))

    输入值

    [3, 2], [5, 3], [1], [2, 3], 9

    输出结果

    3
     类似资料:
    • 问题内容: 我很新,我希望它不太明显,但是我似乎无法为以下问题找到一个简短而准确的答案。 我有两个清单: 我想查找第二个列表()的所有索引何时在第一个列表()中,以便得到如下内容: b在a中的索引:或 问题答案: 具有列表理解: 或使用for循环:

    • 问题内容: 如果我有这个: 然后在a中找到b: 有没有办法对列表做类似的事情?像这样: False的结果是可以理解的-因为它正确地寻找了一个元素’de’,而不是(我恰好想要它做的)’d’之后是’e’ 这是可行的,我知道: 我可以处理数据以获得所需的内容-但是有没有一种简短的Pythonic方式可以做到这一点? 需要说明的是:我需要在此处保留顺序(b = [‘e’,’d’],应返回False)。 如

    • 本文向大家介绍Python从列表中查找子列表元素的索引,包括了Python从列表中查找子列表元素的索引的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,该程序从列表中查找子列表元素的索引。让我们看一个例子来清楚地理解它。 输入列表 输出结果 让我们看看解决给定问题的最简单,最常见的方法。按照给定的步骤解决它。 初始化列表。 使用索引遍历列表。 遍历子列表并检查要查找索引的元

    • 这里对排序列表也提出了类似的问题,但所使用的解决方案对分不适用于保留排序列表。 假设我有一个列表,按相反的顺序排序,键入中间元素, 我想在中间的元素上应用一系列阈值,它位于一个单独的排序列表中,比如 我试图找出第一个元素的索引小于阈值。在上面的示例中,它应该返回, 建议如何以最快的方式完成?

    • 问题内容: 我接受了采访,并且有以下问题: 在不到O(n)的时间内从排序数组中查找唯一数字。 我给出了解决方案,但这是O(n)的。 编辑: 排序后的数组大小约为200亿,唯一数约为1000。 问题答案: 分而治之 : 查看排序序列的第一个和最后一个元素(初始序列为)。 如果两者相等,则序列中的唯一元素是第一个(无论序列有多长)。 如果不同,则划分序列并为每个子序列重复。 一般情况下解决 O(log

    • 问题内容: 说我有一个包含元素的列表。 使用Java 8流,如何找到列表中最小元素的索引(例如,本例中为1)? 我知道可以使用Java在Java中轻松完成此操作。但是,我正在研究类似Scala的解决方案,我们可以简单地说一下获得最小值的索引。 使用流或lambda表达式(例如Java 8的特定功能)可以完成相同的结果吗? 注意:这仅用于学习目的。使用实用程序方法没有任何问题。 问题答案: impo