* 已知一个数组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算法——数组的更多相关文章

  1. Java的数组,集合,数据结构,算法(一)

    本人的愚见,博客是自己积累对外的输出,在学习初期或自己没有多少底料的情况下,与其总结写博客不如默默去搞自己的代码,但是学到集合这一块时,数组,集合,数据结构,算法这个概念搞的我比较混淆,所以不得已写这 ...

  2. java算法--稀疏数组

    数据结构必要知识 线性结构 线性结构是最常用的数据结构,数据元素之间存在一对一的线性关系. 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序存储的线性表称为顺序表,顺序表中的存储元素是 ...

  3. JAVA算法系列 冒泡排序

    java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直 ...

  4. JAVA算法系列 快速排序

    java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 ...

  5. java算法 蓝桥杯 高精度加法

    问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263.要想计算更加规模的数,就要用软件来扩展了,比如用数组或 ...

  6. java算法----排序----(6)希尔排序(最小增量排序)

    package log; public class Test4 { /** * java算法---希尔排序(最小增量排序) * * @param args */ public static void ...

  7. java算法----排序----(5)归并排序

    package log; import java.util.Arrays; public class Test4 { /** * java算法---归并排序 * * @param args */ pu ...

  8. java算法----排序----(4)快速排序

    package log; public class Test4 { /** * java算法---快速排序 * * @param args */ public static void main(Str ...

  9. java算法----排序----(3)冒泡排序

    package log; public class Test4 { /** * java算法---冒泡排序 * * @param args */ public static void main(Str ...

随机推荐

  1. jquery mobile动态加载数据后无法渲染

    引自:http://blog.sina.com.cn/s/blog_025270e901016lst.html jquery mobile在动态添加html之后无法渲染控件,无法转换控件的办法! jq ...

  2. 部署TaskBoard

    部署TaskBoard kiswa/TaskBoard: A Kanban-inspired app for keeping track of things that need to get done ...

  3. 软件的描述x

    1)文档描述: 2)模型描述: 3)架构描述: 4)代码描述:

  4. pycharm一些快捷键

    1.鼠标方法在内建函数上,Ctrl+B,看内建函数的定义 2.pycharm单行和多行注释快捷键   单多行注释就一个组合键:选中+Ctrl+/ 3.Python代码块批量添加Tab缩进    按Ta ...

  5. element table 组件内容换行方案

    element table 组件内容换行方案 white-space的值: normal 默认.空白会被浏览器忽略.pre 空白会被浏览器保留.其行为方式类似 HTML 中的<pre> 标 ...

  6. python与图灵机器人交互(WXPY版本)

    开发者账号:wujunfeng , 开发者key:官网申请  #!/usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/ ...

  7. [poj 2411]Mondriaan's Dream (状压dp)

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18903 Accepted: 10779 D ...

  8. /etc/default/useradd文件内容及对应功能

    1.GROUP=100 #依赖于/etc/login.defs的USE RGRUUPS_ENAB参数,如果为no,则在此处控制 2.HOME=/home #把用户的家路径健在/home中 3.INAC ...

  9. 批量修改Linux系统密码

    截取主机IP地址最后一位数.匹配一组定义好的自定义密码.使用chpasswd修改主机账户密码 截图主机IP [root@web01 ~]# ip addr 1: lo: <LOOPBACK,UP ...

  10. OpenStack 发行版本

    2010年7月,Rackspace和美国宇航局联合其他25家公司启动了OpenStack项目 OpenStack的发行版本时间表和核心项目 OpenStack发行版本 名称 日期           ...