int compact(int[] values) {
int write = 0;
for (int read = 0; read < values.length; read++) {
if (keep(values[read])) values[write++] = transform(values[read]);
}
return write;
}
def compact(values: list[int]) -> int:
write = 0
for read, value in enumerate(values):
if keep(value):
values[write] = transform(value)
write += 1
return write
def compact(values: Array[Int]): Int =
var write = 0
for read <- values.indices do
if keep(values(read)) then
values(write) = transform(values(read))
write += 1
write
int compact(std::vector<int>& values) {
int write = 0;
for (int read = 0; read < values.size(); read++) {
if (keep(values[read])) values[write++] = transform(values[read]);
}
return write;
}