首页 > 代码库 > Java算法——数组
Java算法——数组
* 已知一个数组int[98],该数组里面存储了0~99共100个数字中的98个,数字不重复,请用算法算出0~99中缺少的2个数字是哪两个?
* 要求:数组自己用程序生成,数值介于0~99,相互之间不重复
思路:
1.通过一个Set集合产生一个包含0~99的数组
2.移除2个元素后,把Set集合转成数组arr
3.对数组进行遍历比较,用标志flag判断缺少的2个数,否的话置为false。
4.定义一个临时list存放缺少的2个数
代码如下:
package com.itheima.bbs;import java.util.ArrayList;import java.util.List;import java.util.Set;import java.util.TreeSet;public class RandomArrayDemo { public static void main(String[] args) { //通过Set集合产生一个数组arr Set<Integer> treeSet = new TreeSet<Integer>(); for (Integer i = 0; i < 100; i++) { treeSet.add(i); } treeSet.remove(0); treeSet.remove(99); Integer[] arr = new Integer[treeSet.size()]; treeSet.toArray(arr); //对数组进行遍历,并和0~99之间的数比较 List list = new ArrayList();//临时容器,存放缺少的2个数 for (int i = 0; i < 100; i++) { boolean flag = false; for (int j = 0; j < arr.length; j++) { if (i == arr[j]) { flag = true; break; } } if (!flag) { list.add(i); } } System.out.println("缺少的两个数字是:" + list); }}
Java算法——数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。