【Java】利用代码找出不在预定数组中的自然数
来源:互联网 发布:网络大电影最赚钱 编辑:程序博客网 时间:2024/06/18 15:20
有这么一个有趣的问题,问:
有这么一个不重复的自然数数组,自然数长度为N,而数组长度为N-2,依次随机把自然数放进数组中,请找出2个没有被放进去的自然数。
例如:这个自然数数组是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]这十个数,某次随机放入的顺序是[2, 1, 3, 5, 7, 9, 0, 4],那么6和8这两个数没有被放入进来。
有两个思路可以解决这个问题
桶排序解决
桶排序的思路是:假设键值的范围是从0到N-1,我们需要标记为0,1,2...N-1的桶。如果元素的键值是i,那么就将该元素放入桶i中。每个桶中的都存在和键值具有相同值的元素。
这道题目有10个自然数需要10个桶,遍历这个数组,数组值为桶的下标,并且将值加1。最后查看桶号,哪号桶为空(值为0)则为没有放进的自然数。
public class Ziranshu { public static void main(String[] args) { int[] a = {2, 1, 3, 5, 7, 9, 0, 4}; int[] tong = new int[10]; for(int i = 0; i < a.length; i++) { tong[a[i]] = 1; } for(int i = 0; i < tong.length; i++) { if(tong[i] == 0) { System.out.println(i); } } }}
利用Set不重复属性解决
Set具有无序不重复的属性,当然如果你想排下序,可以用TreeSet。思路就是把8个元素一次放进set,然后再向已经存在的这个长度为8的set添加元素,元素值就是0-9之间的这十个数字,如果set中已经存在值,则size()长度不会被改变,否则size()加1.如果长度改变,则打印出当前添加的数字。
import java.util.Collections;import java.util.HashSet;import java.util.Set;import java.util.TreeSet;public class Ziranshu1 { public static void main(String[] args) { int[] a = {2, 1, 3, 5, 7, 9, 0, 4}; Set<Integer> numbers = new TreeSet<Integer>(); for(int i = 0; i < a.length; i++) { numbers.add(a[i]); } int length = numbers.size(); for(int i = 0; i < 10; i++) { numbers.add(i); if(length != numbers.size()) { length = numbers.size(); System.out.println(i + "不在内"); } } }}
阅读全文
0 0
- 【Java】利用代码找出不在预定数组中的自然数
- 找出不在预定数组中的自然数
- 找出不在预定数组中的自然数
- 给定一个数组,找出不在数组中的最小的那个数字
- 给定一个数组,找出不在数组中的最小的那个数字
- 给定一个数组,找出不在数组中的最小的那个数字
- 【算法】(遇到的问题)给定一个数组,找出不在数组中的最小的那个数字
- 用JAVA找出数组中的最大元素
- 找出无序数组中的最小的k个数(利用大根堆)
- leetcode_448. Find All Numbers Disappeared in an Array 找出不在数组中的数,正负号标记法
- 找出数组中的最大值
- 找出数组中的峰值
- 面试题->找出自然数
- java如何找出一维数组中的单个元素。
- JAVA经典面试题(三)--1~100共一百个自然数,放入一个99个元素的数组a[99],找出没有放入的那个元素
- java数组随机乱序且乱序后不在其原来的位置上(代码片段)
- 找出数组中的Single Number
- 找出数组中的主元素
- 编译安装php时报错
- C语言堆栈入门——堆和栈的区别
- springBoot的CORS支持跨域
- MySQL导入sql文件出现unknown command '\'
- 移动页面自适应手机屏幕宽度
- 【Java】利用代码找出不在预定数组中的自然数
- Lua配置表存储优化方案
- iOS 雷达动画效果实现
- Ubuntu16.04学习笔记1-安装
- JVM常见参数配置
- 关于easyui在同个页面添加控件不解析的情况。。
- org.apache.jasper.JasperException: java.lang.NullPointerException:jar包重复的bug
- Repository模式--采用EF Fluent API使用EntityTypeConfiguration分文件配置Model映射关系
- Spring整合JMS(三)——MessageConverter介绍