未知项穷举
写一个python的function(*arg) 注意是不定传入
要求
function([1,2], [3,4]) 返回[[1,3], [1,4], [2,3], [2,4]]
function([1,2], [3,4], [5,6]) 返回[[1,3,5], [1,3,6], [1,4,5], [1,4,6], [2,3,5], [2,3,6], [2,4,5], [2,4,6]]
……
就是穷举了
不需考虑容错,假定输入的都是有效整数列表,但列表个数不定,列表内数目也不定
------------------------------
让小天使骗了200分,itertools.product(*iterables, repeat=1) 不适合
------------------------------
研究两小时,自写了一个,谁有更好的算法?越简单越好
要求
function([1,2], [3,4]) 返回[[1,3], [1,4], [2,3], [2,4]]
function([1,2], [3,4], [5,6]) 返回[[1,3,5], [1,3,6], [1,4,5], [1,4,6], [2,3,5], [2,3,6], [2,4,5], [2,4,6]]
……
就是穷举了
不需考虑容错,假定输入的都是有效整数列表,但列表个数不定,列表内数目也不定
------------------------------
让小天使骗了200分,itertools.product(*iterables, repeat=1) 不适合
------------------------------
研究两小时,自写了一个,谁有更好的算法?越简单越好
def zMakeTable(*args):
m = [[x] for x in args[0]]
for i, v in enumerate(args[1:]):
tmp = []
for x in m:
for y in v:
x.append(y)
tmp.append([n for n in x])
del x[-1:]
m = [z for z in tmp]
return m
if __name__ == '__main__':
print(zMakeTable([1, 2], [3, 4], [5, 6], [7, 8]))
# [[1, 3, 5, 7], [1, 3, 5, 8], [1, 3, 6, 7], [1, 3, 6, 8],
# [1, 4, 5, 7], [1, 4, 5, 8], [1, 4, 6, 7], [1, 4, 6, 8],
# [2, 3, 5, 7], [2, 3, 5, 8], [2, 3, 6, 7], [2, 3, 6, 8],
# [2, 4, 5, 7], [2, 4, 5, 8], [2, 4, 6, 7], [2, 4, 6, 8]]
...全文
相关推荐
计算机算法总结.pdf
计算机算法总结.pdf
C_C++常用算法设计方法C_C++常用算法设计方法v
C_C++常用算法设计方法C_C++常用算法设计方法C_C++常用算法设计方法
常用算法设计方法.doc
算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。
常用算法设计方法 搜集
主要是一些比较经常用到的典型算法的概略搜集
算法分析与设计c语言实现
本文讲解了如下常用的算法设计方法 1.1 迭代法 1.2 穷举搜索法 1.3 递推法 1.4 递归法 1.5 贪婪法 1.6 分治法 1.7 动态规划法 1.8 回溯法 并且包含用c语言实现的经典排序查找等算法


