码迷,mamicode.com
首页 > 编程语言 > 详细

Java算法——数组

时间:2014-11-03 14:24:06      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   java   for   sp   div   log   

 * 已知一个数组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算法——数组

标签:style   blog   color   ar   java   for   sp   div   log   

原文地址:http://www.cnblogs.com/Springtie/p/4070932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!