java算法题解答
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java算法题解答,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1023字,纯文字阅读大概需要2分钟。
内容图文
![java算法题解答](/upload/InfoBanner/zyjiaocheng/795/8c1c46c2bee841769305bc3d12f1c402.jpg)
1、自己答案
public class Text {
public static void main(String[] args) {
int[] A = new int[]{1,5,8,8,9,2,5,2,3,1,3};
int i = new Text().singleNumber(A);
System.out.println(i);
}
/**
* @param A: An integer array
* @return: An integer
*/
public int singleNumber(int[] A) {
Set<Integer> set = new HashSet<>();
for (int i = 0;i<A.length ;i++ ){
boolean flag = set.add(A[i]);
if (!flag) {
set.remove(A[i]);
}
}
Iterator<Integer> iterator = set.iterator();
return iterator.next();
}
}
更优答案
public class Text {
public static void main(String[] args) {
int[] A = new int[]{1,5,8,8,9,2,5,2,3,1,3};
int i = new Text().singleNumber(A);
System.out.println(i);
}
/**
* @param A: An integer array
* @return: An integer
*/
public int singleNumber(int[] A) {
if(A == null || A.length == 0) {
return -1;
}
int rst = 0;
for (int i = 0; i < A.length; i++) {
rst ^= A[i];
}
return rst;
}
}
解读:异或运算,不同为1,相同为0,任意相同数字返回0(即0000 0000),只有一个单独的数字与0做异或运算,例0000 0101,相同返回0,不同返回1,即返回该数字本身,一次遍历获取结果,时间复杂度O(n)
内容总结
以上是互联网集市为您收集整理的java算法题解答全部内容,希望文章能够帮你解决java算法题解答所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】