leetcode-448 Find All Numbers Disappeared in an Array
2016-11-30 22:58
591 查看
中文描述
数组arr,长度为n,0<arr[i]<n,找出1~n中没有在数组中出现的数字,找出数组中没有出现的数据,时间复杂度为o(n),尽量不要浪费空间。
说明
从0<arr[i]<n,并且是数组,并且不要浪费空间,因此只能在原数组的基础上进行判断,而进行判断,需要明确:如何确定哪个数字出现了?如何确定是否出现? 1 通过数组的下标,确定数字,2 通过+,-号确定该数字是否出现。 遍历数组,元素值的绝对值减一作为下标,该下标对应的值改为负值。 遍历数组,元素值为整数的,说明改下标加一的数字没有出现。
java代码
public static List<Integer> findAllNumbersDisapperaredInAnArray(Integer[] nums){ List<Integer> list = new ArrayList<Integer>(); printArr(nums); for(Integer n : nums){ nums[Math.abs(n)-1] = -Math.abs(nums[Math.abs(n)-1]); printArr(nums); } for(int i=0;i<nums.length; i++){ if(nums[i] > 0){ list.add(i+1); } } return list; }
先临时记录自己的方法,刷完easy题之后再去看别人的方法,如果有更好的方法,会做补充,如果你有的话请留言,谢谢啦
相关文章推荐
- LeetCode 448 Find All Numbers Disappeared in an Array
- 【Leetcode-easy-448】Find All Numbers Disappeared in an Array
- leetcode ---448---FindAllNumbersDisappearedinanArray
- leetcode-448-Find All Numbers Disappeared in an Array
- Leetcode 448 Find All Numbers Disappeared in an Array
- Leetcode 448 Find All Numbers Disappeared in an Array
- Leetcode 448 Find All Numbers Disappeared in an Array
- 【LeetCode-448】 Find All Numbers Disappeared in an Array(C++)
- [leetcode 448]Find All Numbers Disappeared in an Array
- leetcode448~Find All Numbers Disappeared in an Array
- LeetCode 448 Find All Numbers Disappeared in an Array
- leetcode 448 Find All Numbers Disappeared in an Array
- Leetcode448 Find All Numbers Disappeared in an Array
- LeetCode - 448 - Find All Numbers Disappeared in an Array
- leetcode 448 Find All Numbers Disappeared in an Array C++
- leetcode(448). Find All Numbers Disappeared in an Array
- leetcode-448- Find All Numbers Disappeared in an Array
- leetcode_448 Find All Numbers Disappeared in an Array
- [C语言][LeetCode][448]Find All Numbers Disappeared in an Array
- leetcode448 Find All Numbers Disappeared In An Array Java