博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 448. 找到所有数组中消失的数字
阅读量:5154 次
发布时间:2019-06-13

本文共 1259 字,大约阅读时间需要 4 分钟。

448. 找到所有数组中消失的数字

LeetCode448. Find All Numbers Disappeared in an Array

题目描述

给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。

找到所有在 [1, n] 范围之间没有出现在数组中的数字。

您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。

示例:

输入:

[4,3,2,7,8,2,3,1]

输出:

[5,6]

Java 实现

class Solution {    // 效率低    public List
_findDisappearedNumbers(int[] nums) { List
res = 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) { res.add(i + 1); } } return res; } // 效率高 public List
findDisappearedNumbers(int[] nums) { int[] count = new int[nums.length]; List
res = new ArrayList<>(); for (int i = 0; i < nums.length; i++) { count[nums[i] - 1]++; } for (int j = 0; j < count.length; j++) { if (count[j] == 0) { res.add(j + 1); } } return res; }}

运行结果

[5, 6]

参考资料

转载于:https://www.cnblogs.com/hglibin/p/9923222.html

你可能感兴趣的文章
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>