Java数组修饰符方法

时间:2017-03-27 10:18:35

标签: java arrays

采用长度为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;
}
}

2 个答案:

答案 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次。每次分配两个元素,一个从头开始,另一个从头开始。