采用长度为n的整数数组,其中n> 5.该方法返回一个长度为10的整数数组,其中数组的前1/2包含来自开头的元素
我的测试用例:
int[] a = {4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(arrayModifier(a)))
输出:
[4, 5, 6, 7, 8, 5, 6, 7, 8, 9]
代码:
public static int[] arrayModifier(int[] a) {
int ctr = 0;
int i=0;
for(int i = 0;i<a.length;i++){
{
if(a[i] >= 5) {
a[i] = a[10];
ctr ++;
}
}
return ctr;
}
}
答案 0 :(得分:2)
您不需要遍历整个输入数组,您只对5个元素感兴趣 - 前五个和后五个元素分别具有索引a[a.length-5 .. a.length-1]
和for (int i = 0; i < 5; i++) {
newArray[i] = a[i]; // first five
newArray[i + 5] = a[a.length - 5 + i]; // last five
}
。
将其翻译成您获得的代码:
import os,glob
os.chdir(r"G:\PROJECTS\menofim_3_5\gis")
for file in glob.glob('*.py'):
with open(file) as f:
contents = f.read()
if 'DATASOURCE' in contents:
print file
答案 1 :(得分:0)
您可以尝试这样:
public static int[] arrayModifier(int[] a) {
int result[] = new int[10];
int i=0;
for(i = 0; i<5; i++){
result[i] = a[i];
result[10 - i - 1] = a[a.length - i - 1];
}
return result;
}
如果结果数组的长度始终为10,则只能迭代5次。每次分配两个元素,一个从头开始,另一个从头开始。