【Leetcode刷题篇】leetcode136 只出现一次的数字
发布日期:2021-06-29 15:34:06 浏览次数:2 分类:技术文章

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

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1

示例 2:

输入: [4,1,2,1,2]
输出: 4

解题思路1:用hashmap或者hashset来做

// 用hashmap来做	public List
findDisappearedNumbers(int[] nums) {
HashMap
hashmap = new HashMap<>(); for(int num:nums) {
hashmap.put(num, true); } ArrayList
res = new ArrayList<>(); //对hashmap遍历 for(int i=1;i<=nums.length;i++) {
if(!hashmap.containsKey(i)) {
res.add(i); } } return res; }

解题思路2:在原数组上直接修改

//对其原地修改 	public List
findDisappearedNumbers_2(int[] nums) {
// 遍历的时候对其修改 for(int i=0;i
0) {
nums[newIndex]*=-1; } } // 对其再次遍历 ArrayList
res = new ArrayList<>(); for (int i = 1; i <= nums.length; i++) {
if (nums[i - 1] > 0) {
res.add(i); } } return res; }

转载地址:https://codingchaozhang.blog.csdn.net/article/details/110409977 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:spring boot整合thymeleaf,支持JSP和HTML页面开发
下一篇:【Leetcode刷题篇】leetcode136 只出现一次的数字

发表评论

最新留言

不错!
[***.144.177.141]2024年04月16日 20时57分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章