http://www.hackerearth.com/problem/algorithm/little-deepu-and-array/
这是我用python解决的上述链接的问题。 但由于列表很慢,我无法通过时间限制传递所有测试用例,而在c ++中使用数组求解时,我通过了所有测试用例。
的Python:
n=input()
l=map(int,raw_input().split())
m=input()
for i in range(m):
x=input()
for j in range(n):
if(l[j]>x):
l[j]-=1
for i in range(n):
print l[i],
C ++:
int main()
{
int n,numCalls,x,i,j;
long int arr[1000000];
cin>>n;
for(i=0;i<n;i++)
cin>>arr[i];
cin>>numCalls;
for(i=0;i<numCalls;i++)
{
cin>>x;
for(j=0;j<n;j++)
if(arr[j]>x)
arr[j]-=1;
}
for(i=0;i<n;i++)
cout<<arr[i]<<" ";
}
任何人都可以在python中有效地解决这个问题,以便所有测试用例都可以通过!!。
答案 0 :(得分:0)
您的代码只需一次更改,使用Python数组初始化l
:
import array
n=input()
l=array.array('l', map(int, raw_input().split()))
m=input()
for i in range(m):
x=input()
for j in range(n):
if(l[j]>x):
l[j]-=1
for i in range(n):
print l[i],