利用数组内容和索引之间的关系
import java.util.ArrayList;
import java.util.List;
public class T448 {
public List<Integer> findDisappearedNumbers(int[] nums) {
List<Integer> result = new ArrayList<>();
int len = nums.length;
for (int i = 0; i < len; i++) {
if (nums[Math.abs(nums[i]) - 1] > 0) {
nums[Math.abs(nums[i]) - 1] *= -1;
}
}
for (int i = 0; i < len; i++) {
if (nums[i] > 0) {
result.add(i + 1);
}
}
return result;
}
public static void main(String[] args) {
int[] a = {4, 3, 2, 7, 8, 2, 3, 1};
T448 t448 = new T448();
System.out.println(t448.findDisappearedNumbers(a));
}
}