LeetCode每日一题:找到所有数组中消失的数字(No.448)

栏目: 编程工具 · 发布时间: 5年前

给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。
找到所有在 [1, n] 范围之间没有出现在数组中的数字。
复制代码

示例:

输入:
[4,3,2,7,8,2,3,1]
输出:
[5,6]
复制代码

思考:

遍历数组,取数组中每个元素的绝对值-1(这里-1是因为数组下标从0开始,元素从1开始)下标的元素,将其求绝对值再乘以-1。
再次循环遍历数组查找数组中大于0的元素,大于0元素的下标+1即为消失的数字。
复制代码

实现:

class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List<Integer> result = new ArrayList<>();
        for (int count = 0; count < nums.length; count++) {
            int pos = Math.abs(nums[count]);
            nums[pos - 1] = Math.abs(nums[pos - 1]) * -1;
        }
        for (int count = 0; count < nums.length; count++) {
            if (nums[count] > 0) {
                result.add(count+1);
            }
        }
        return result;
    }
}复制代码

以上所述就是小编给大家介绍的《LeetCode每日一题:找到所有数组中消失的数字(No.448)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Letting Go of the Words

Letting Go of the Words

Janice (Ginny) Redish / Morgan Kaufmann / 2007-06-11 / USD 49.95

"Redish has done her homework and created a thorough overview of the issues in writing for the Web. Ironically, I must recommend that you read her every word so that you can find out why your customer......一起来看看 《Letting Go of the Words》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具