我在现场采访中被问到这个算法问题.由于我没有被要求签署NDA,我在这里发布答案.
给定一个不包含0 的REAL数组,找到产生最大乘积的连续元素.算法应该在线性时间内运行
我考虑过以下方法:使用两个数组.第一个是使用DP构思记录当前最大绝对值乘积,第二个阵列记录到目前为止遇到的负元素数.最终结果应该是最大的最大绝对值,负数的数量应该是偶数.
我认为我的方法会起作用,但在编码期间被打断说它不起作用.请告诉我上述方法中缺少的内容.
我尝试总结嵌套元素的列表
例如,数字= [1,3,5,6,[7,8]],总和= 30
我写了以下代码
def nested_sum(L):
sum=0
for i in range(len(L)):
if (len(L[i])>1):
sum=sum+nested_sum(L[i])
else:
sum=sum+L[i]
return sum
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下错误:'int'类型的对象没有len()我也试过len([L [i]]),仍然无法正常工作
有人可以帮忙吗?顺便说一下,它是Python 3.3
我正在使用Python进行网络流量监控项目.不熟悉Python,所以我在这里寻求帮助.
简而言之,我正在检查流量和流量,我这样写:
for iter in ('in','out'):
netdata = myhttp()
print data
Run Code Online (Sandbox Code Playgroud)
netdata是一个由嵌套列表组成的列表,其格式如下:
[ [t1,f1], [t2,f2], ...]
Run Code Online (Sandbox Code Playgroud)
这里t代表的是时刻,f是流动.但是我只想在这个时刻保留这些f进行内外,我想知道如何获得有效的代码.
经过一些搜索,我认为我需要使用创建流量列表(2个元素),然后使用zip函数同时迭代这两个列表,但是我很难写出正确的列表.由于我的netdata是一个很长的列表,效率也非常重要.
如果有任何令人困惑的事情,请告诉我,我会尽力澄清.感谢帮助
我想要手动覆盖 y 轴刻度标签而不影响原始绘图。\n例如,如何显示 y 轴刻度标签 [1,10,100,1000,10000] 而不会影响原始绘图形状,即仍然显示完美的二次曲线。
\n\nimport numpy as np\nimport pylab as pl\nx = [1, 2, 3, 4, 5]\ny = [1, 4, 9, 16, 25]\npl.plot(x, y)\npl.title(\xe2\x80\x99Plot of y vs. x\xe2\x80\x99)\npl.xlabel(\xe2\x80\x99x axis\xe2\x80\x99)\npl.ylabel(\xe2\x80\x99y axis\xe2\x80\x99)\npl.show()\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试了以下方法但不起作用
\n\nnewYlabel = ['1','10','100','1000','10000']\np1.set_yticklabels(newYlabel)\nRun Code Online (Sandbox Code Playgroud)\n
出于视觉效果的目的,我希望我可以删除圆圈外的网格,只保留圆圈内的网格。
顺便说一句,如何用红色填充单元格 ([8,9],[9,10]),我的意思是,x=8 右侧和 y=9 下方的单元格。
我的代码在下面,还附上了当前的图像。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.transforms import BlendedGenericTransform
fig, ax = plt.subplots()
ax.text(0, -0.02, 'y', transform=BlendedGenericTransform(ax.transData, ax.transAxes), ha='center')
ax.text(1.01, 0, 'x', transform=BlendedGenericTransform(ax.transAxes, ax.transData), va='center')
ax.set_xticks(np.arange(0,side+1,1))
ax.set_yticks(np.arange(0,side+1,1))
plt.grid()
ax.xaxis.tick_top()
plt.gca().invert_yaxis()
circle = plt.Circle((15, 15), radius=15, fc='w')
plt.gca().add_patch(circle)
fig.set_size_inches(18.5, 10.5)
Run Code Online (Sandbox Code Playgroud) 我有一个文档,每一行都是一个字符串。它可能包含数字、非英文字母和单词、符号(如 ! 和 *)。我想从每一行中提取英文单词(英文单词用空格分隔)。我的代码如下,这是我的map-reduce作业的map函数。但是,根据最终结果,此映射器函数仅生成字母(例如 a、b、c)频率计数。谁能帮我找到错误?谢谢
import sys
import re
for line in sys.stdin:
line = re.sub("[^A-Za-z]", "", line.strip())
line = line.lower()
words = ' '.join(line.split())
for word in words:
print '%s\t%s' % (word, 1)
Run Code Online (Sandbox Code Playgroud) 我使用pandas包生成了这样的交通流量系列:
data = np.array(data)
index = date_range(time_start[0],time_end[0],freq='30S')
s = Series(data, index=index)
Run Code Online (Sandbox Code Playgroud)
样本输出如下:
2013-07-02 10:04:30 13242.0
2013-07-02 10:05:00 12354.3
................... .......
Run Code Online (Sandbox Code Playgroud)
这里第一列是索引,第二列是值.我的任务是收集他们的价值观(第二栏)缺失的所有时刻.
我的想法是这样的:
for i in s:
if isnull(i):
s.iloc['i']
Run Code Online (Sandbox Code Playgroud)
但'无'不能用来引用索引......
如果缺失值和s都很大,这会导致效率吗?有更好的主意吗?
我有一个hive表A,其中包含以下列
USER ITEM SCORE
U1 I1 S1
U1 I2 S2
...................
Run Code Online (Sandbox Code Playgroud)
我想要的是表格B这样的格式
USER ITEMS #ITEMS is an array
U1 [I2,I3,...] # items are sorted according to score in descending and limit 5
Run Code Online (Sandbox Code Playgroud)
对于用户少于5个项目,只需将项目按降序排列.
我有一个大文件作为我的python代码的输入,它将生成相应的输出文件.但是,它需要太多时间,我想加快速度.
现在,我将大文件拆分为1000个较小的文件.我想有一个小脚本,将启动1000个线程,每个线程使用我原来的python代码,并有自己的输出文件.
谁能给我一个示例/示例代码?
python ×7
matplotlib ×2
algorithm ×1
hive ×1
list ×1
mapreduce ×1
nested-lists ×1
nosql ×1
pandas ×1
plot ×1
python-3.3 ×1
regex ×1
series ×1
sql ×1