# Solving codingBat Post4 with one loop in Java

## Solving codingBat Post4 with one loop in Java

- Before iteration create result array, lets say with length 0.
- Each time you find
`4`

create new result array with size based on index of that`4`

and length of`nums`

to store rest of elements. - If number is not
`4`

place it in result array (dont place if result arrays length is`0`

because it means we didnt find any`4`

yet, or it was last element of`nums`

array).

Here is example solution

```
public int[] post4(int[] nums) {
int[] result = new int[0];
int j = 0;
for (int i = 0; i<nums.length; i++){
if (nums[i] == 4) {
result = new int[nums.length - i-1];
j=0;
}
else
if (result.length>0) result[j++] = nums[i];
}
return result;
}
```

You may use the class Arrays…that is:

```
public int[] post4(int[] nums) {
int lastFourIndex = 0;
for (int i = 0; i < nums.length; i++) {
if(nums[i] == 4)
{
lastFourIndex = i;
}
}
return Arrays.copyOfRange(nums, lastFourIndex+1, nums.length);
}
```

Angelo

#### Solving codingBat Post4 with one loop in Java

post4 problem solution code:

I have tried this code and its perfectly working. Try this on your IDE.

```
public int[] m1(int[] nums) {
int c = 0;
for (int i = 0; i < nums.length;) {
if(nums[i]!=4){
i= i+1;
}
else if(nums[i] == 4){
c = i;
i = i+1;
}
}
int count = 0;
for (int i = c+1; i < nums.length; i++) {
if(nums[i]!=4){
count = count+1;
}
else
break;
}
int b[] = new int[count];
int j = 0;
for (int i = c+1; i < nums.length; i++) {
b[j] = nums[i];
j++;
}
return b;
}
```