小编Dav*_*idF的帖子

O(n)复杂度中子段中最大值的最小值

我几天前采访了亚马逊.我无法回答其中一个让我满意的问题.我在采访后试图得到答案,但到目前为止我还没有成功.这是一个问题:

你有一个大小为n的整数数组.给你参数k在哪里k < n.对于k阵列中每个连续元素大小的每个段,您需要计算最大值.您只需返回这些最大值的最小值.

例如给出1 2 3 1 1 2 1 1 1,k = 3答案是1.
该段将是1 2 3,2 3 1,3 1 1,1 1 2,1 2 1,2 1 1,1 1 1.
每个段中的最大的值是3,3,3,2,2,2,1.因此,答案是
这些值中的最小值.11

我想出的最佳答案是复杂度O(n log k).我所做的是创建一个带有第一个k元素的二叉搜索树,获取树中的最大值并将其保存在变量中minOfMax …

arrays algorithm big-o data-structures

13
推荐指数
2
解决办法
3586
查看次数

spark.python.worker.reuse没有按预期工作

鉴于此代码块

def return_pid(_): yield os.getpid()
spark = SparkSession.builder.getOrCreate()
pids = set(spark.sparkContext.range(32).mapPartitions(return_pid).collect())
print(pids)
pids = set(spark.sparkContext.range(32).mapPartitions(return_pid).collect())
print(pids)
Run Code Online (Sandbox Code Playgroud)

我期待相同的python进程id将被打印两次.相反,正在打印完全不同的Python进程ID.

spark.python.worker.reuse是真的,但默认.但如果spark.python.worker.reuse=true明确地发生这种意外行为

apache-spark pyspark

6
推荐指数
0
解决办法
358
查看次数