博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找单数
阅读量:6642 次
发布时间:2019-06-25

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

一个int数组中的元素有这样的特点:两两出现,只有2个数字是单独的。

找到这2个数字,返回一个int数组。

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].

Note:

  1. The order of the result is not important. So in the above example, [5, 3] is also correct.
  2. Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?

用Java实现,核心方法如下:

public static int[] singleNumber(int[] nums) {        if(nums.length==2&&nums[0]!=nums[1]){            return nums;        }           HashSet
store=new HashSet
(); HashSet
result=new HashSet
(); for(int i=0;i

使用的是HashSet来存储数据

HashSet的add方法返回一个boolean值。第一次添加数据时返回true,再添加同样的数据时返回false

HashSet
test = new HashSet
(); System.out.print(test.add(1) + "\t"); System.out.print(test.add(1)); System.out.print("\n" + test.add(2) + "\t"); System.out.println(test.add(3)); for (int i = 1;i <= 3; i++){ System.out.print("item" + i + ":" + test.iterator().next() + "\t"); test.remove(test.iterator().next()); //删去当前值 }

其中数据“1”执行了2次添加操作;打印出

true false

true true
item1:1 item2:2 item3:3

可以看出添加2次,实际只有1个

利用add方法返回的Boolean值,能判断是否已经把数据添加进map中

 

转载地址:http://zrovo.baihongyu.com/

你可能感兴趣的文章
在html中写python代码的语法和特点-----基于webpy的httpserver
查看>>
IOS框架概览
查看>>
aehyok.com的成长之路二——技术选型
查看>>
linux中mail函数不能发送邮件怎么办
查看>>
Eclipse中设置中文件javadoc
查看>>
Intellij IDEA创建Maven Web项目
查看>>
武汉大学2014年基础数学面试全过程
查看>>
新手向 过神指南(希望能切实的帮助到新手朋友们)完整版
查看>>
x86汇编指令具体解释
查看>>
二级指针也引用
查看>>
汉诺塔
查看>>
linux sed命令详解
查看>>
八大排序算法
查看>>
XMPP协议的原理介绍
查看>>
c++多态的案例分析
查看>>
Touch ID和Passcode框架,Apple Watch风格的应用布局
查看>>
Stage3D学习笔记(七):动态纹理
查看>>
Codeforces Round #281 (Div. 2) A. Vasya and Football 暴力水题
查看>>
windows下的C++与cuda编译器位置
查看>>
超体.特效中英字幕.Lucy.2014.BD1080P.X264.AAC.English&Mandarin.CHS-ENG
查看>>