我一直在为java编写codingbat问题,并且在数组-2中遇到了一个问题,我不能只用一个循环来解决这个问题。问题如下:
给定一个in的非空数组,返回一个新数组,该数组包含来自原始数组的元素,这些元素在原始数组的前4位之前。原始数组至少包含一个4。请注意,在java中创建长度为0的数组是有效的。
我看过其他解决方案,但它们都使用两个循环,而Array-2问题集应该只使用一个循环完成。我不知道如何处理这个问题,下面是两个循环的解决方案:
public int[] pre4(int[] nums) {
int[] notnums = new int[0];
for(int i = 0; i<nums.length;i++)
if(nums[i]==4){
notnums = new int[i];
for(int j = 0;j<i;j++)
notnums[j] = nums[j];
return notnums;
}
return notnums;
}发布于 2017-03-26 19:54:56
由于这是一个编码挑战,我不会用代码回答,相反,下面是您应该如何处理它的方法:
最后,第二个数组应该有前4个之前存在的所有元素。
发布于 2017-12-12 14:00:59
我的1循环解决方案:
public int[] pre4(int[] nums) {
int[] res = new int[0];
for(int i = nums.length - 1; i >= 0; i--){
if (nums[i] == 4)
res = new int[i];
else
if (res.length > 0)
res[i] = nums[i];
}
return res;
}https://stackoverflow.com/questions/43033700
复制相似问题