标签: sublist

生成递归以查找具有最大总和的子列表

我试图解决Python中的生成递归问题.问题是:

  • 在由整数组成的列表中,找到具有最大总和并返回该总和的相邻子列表.
  • 例如,如果给定列表是[-2,1,-3,4,-1,2,1,-5,4],则具有最大总和的相邻子列表为[4,-1,2,1] ],总和6

我必须按照给定的算法来解决find_max:

  1. 将给定列表(中点)拆分为两个:L_left和L_right.
  2. 返回以下3的最大值:
    • 任何子列表的最大总和完全驻留在L_left中(使用对find_max的递归调用).
    • 任何子列表的最大总和完全驻留在L_right中(使用对find_max的递归调用).
    • 与L_left和L_right重叠的最大子列表; 即
      • 第一:找到从中点(向左)开始到中点左侧某点的任何子列表的最大总和
      • 第二步:找到从中点(向右)开始到中点右侧某点的任何子列表的最大总和
      • 最后:添加两个最大值.

我尝试过以下方法:

def find_max(L):
    length = len(L)
    mid_index = length/2
    if length == 1:
        return L[0]
    else:
        left = find_max(L[0:(length/2)])
        right = find_max(L[(length/2):length])
        max_subset = max(left,right,left+right)
        return max_subset
Run Code Online (Sandbox Code Playgroud)

这可以解决长度为2的列表.如何将其扩展为包含更多元素的列表?

python algorithm recursion sublist

6
推荐指数
1
解决办法
1510
查看次数

Java 的 ArrayList.sublist(startIndex, endIndex) 方法的时间复杂度是多少?

这个问题基本上说明了一切。假设我有一个(排序的)列表,可以包含 1K 到 1M 的任何项目。我有一个starting index和一个ending index。如果我使用该ArrayList.sublist(start, end)方法,时间复杂度是 O(n) 还是 O(1)?我确实在这里检查了答案,因为我认为这是一个常见问题,但是虽然我找到了 LinkedList 的重复答案,但我找不到关于 ArrayList 的具体问题。感谢大家的回答!

java arraylist time-complexity sublist constant-time

6
推荐指数
1
解决办法
3654
查看次数

在python中查找(并保留)子列表的副本

我有一个包含数字的列表(子列表)列表,我只想保留所有(子)列表中存在的列表.

例:

x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]

output => [3, 4]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python list duplicates sublist

5
推荐指数
2
解决办法
2285
查看次数

Python:从每个列表中选择一个项目但是尽可能组合

我希望有一个itertools功能,但我找不到一个.我希望Python从列表的每个子列表中选择一个项目,并维护顺序,与它们进行各种可能的组合.例如,希望如此

x = [[1,2,3],[1,2,3,4],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)

可能成为

[[1,1,1],[1,1,2],[1,1,3],[1,1,4],[1,1,5],[1,2,1]...]
Run Code Online (Sandbox Code Playgroud)

并且此输出将包括每个子列表中的一个项目,因此[5,5,5]和[4,4,5]都不会包含在其中.此外,由于秩序很重要,而[3,4,5]可能在输出中,[5,4,3]不能.但是,当然,该方法应适用于原始列表中的所有数字和任何数字.

谢谢!

python list python-itertools sublist

5
推荐指数
1
解决办法
1983
查看次数

如何在 Apex Salesforce 中获取列表的子列表?

我有一个 SObject 列表,其中有 N 个项目/sObject SObject[] sList = [sobject1, sboject2, sboject3, ........ , sobjectN]

如何从列表开头仅获取 10 项

提前致谢!

list salesforce sublist apex-code apex

5
推荐指数
1
解决办法
2万
查看次数

序言中最长的序列

我必须从Prolog中的列表中删除最长的质数序列。我是Prolog的新手,我找不到找到最长序列的方法...这是我到目前为止所做的:

divisible(X,Y):-
  0 is X mod Y.
divisible(X,Y):-
  X > Y + 1,
  divisible(X,Y+1).

is_prime(2).
is_prime(3).
is_prime(P):-
  integer(P),
  P>3,
  P mod 2 =\= 0,
  not(divisible(P,3)).
Run Code Online (Sandbox Code Playgroud)

这将从列表中删除素数。

removeP([],[]).
removeP([H],[H]):-
  not(is_prime(H)).
removeP([H|T],[H|L]):-
  not(is_prime(H)),
  removeP(T,L).
removeP([H|T],L):-
  is_prime(H),
  removeP(T,L).
Run Code Online (Sandbox Code Playgroud)

在这里,我试图找到最长的序列,但是我不知道下一步该怎么做。

longest([],[]).
longest([H],[H]):-
  is_prime(H).
longest([H],[]):-
  not(in_prime(H)).
longest([H|T],L):-
  ....
Run Code Online (Sandbox Code Playgroud)

list prolog sublist

5
推荐指数
0
解决办法
291
查看次数

如何获取R中列表的每个项目的第n个元素

如果我们有一个列表,每个项目可以有不同的长度.例如:

l <- list(c(1, 2), c(3, 4,5), c(5), c(6,7))
Run Code Online (Sandbox Code Playgroud)

(为了清楚起见,我们将在列表"items"中调用对象,并在列表"elements"的对象中调用对象.)

我们如何提取,例如每个项目的第一个元素?在这里,我想提取:

1, 3, 5, 6
Run Code Online (Sandbox Code Playgroud)

然后每个项目的第二个元素的相同问题:

2, 4, NA, 7
Run Code Online (Sandbox Code Playgroud)

r list vector sublist

5
推荐指数
1
解决办法
3950
查看次数

我需要在python中合并子列表的元素

我有以下数据列表

data1 = [[4,5,9],[4,7,2],[11,13,15]]
data2 = [[1,2,3,7],[3,6,8,5],[12,10,15,17]]
Run Code Online (Sandbox Code Playgroud)

我希望列表的合并完成如下.

data = [[4,5,9,1,2,3,7], [4,7,2,3,6,8,5], [11,13,15,12,10,15,17]]
Run Code Online (Sandbox Code Playgroud)

即合并data1和data2中索引0处的元素,合并data1和data2中索引1处的元素,依此类推.

data1 = [[4,5,9],[4,7,2],[11,13,15]]
data2 = [[1,2,3,7],[3,6,8,5],[12,10,15,17]]
for i in range (0,2):
    for j in range(0,3):
        data1[i].extend(data2[j])
print(data1)
Run Code Online (Sandbox Code Playgroud)

python list sublist

5
推荐指数
1
解决办法
154
查看次数

如何在python中找到显示一个列表而不是另一个列表的子列表?

我需要比较两个基本上是列表列表的列表,找出存在于一个列表中但没有其他列表的子列表。子列表的排列也没有考虑,即['a','b'] = ['b,'a']。这两个列表是

List_1 = [['T_1','T_2'],['T_2','T_3'],['T_1','T_3']]
List_2 = [['T_1','T_2'],['T_3','T_1']]
Run Code Online (Sandbox Code Playgroud)

输出列表应为

out_list = [['T_2','T_3']]
Run Code Online (Sandbox Code Playgroud)

python list sublist

5
推荐指数
1
解决办法
104
查看次数

python:在子列表中定位元素

给定这些子列表

lst=[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h']]
Run Code Online (Sandbox Code Playgroud)

我试图找到其元素的位置,例如,字母“a”位于 0,0 但这一行

print(lst.index('a'))
Run Code Online (Sandbox Code Playgroud)

相反会产生以下错误: ValueError: 'a' is not in list

python nested-lists sublist

5
推荐指数
1
解决办法
379
查看次数