448. Find All Numbers Disappeared in an Array

xiaoxiao2021-02-28  5

原题链接

这个题主要是寻找没有出现的数字。 代码的主要思路是,如果找到数值i,则把对应i-1索引的值取负。 之后遍历列表,如果发现i-1里面的数>0,则值i没有出现过。

/** * Created by Joe on 2018/1/9. * 448. Find All Numbers Disappeared in an Array * https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/ */ public class P448 { public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> ret = new ArrayList<>(); for(int i = 0; i < nums.length; i++) { int val = Math.abs(nums[i]) - 1; if(nums[val] > 0) { nums[val] = -nums[val]; } } for(int i = 0; i < nums.length; i++) { if(nums[i] > 0) { ret.add(i+1); } } return ret; } }
转载请注明原文地址: https://www.6miu.com/read-1400127.html

最新回复(0)