找出不在预定数组中的自然数
来源:互联网 发布:虚拟机下安装linux 编辑:程序博客网 时间:2024/06/05 16:05
有这么一个有趣的问题,问:
有这么一个不重复的自然数数组,自然数长度为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】利用代码找出不在预定数组中的自然数
- 给定一个数组,找出不在数组中的最小的那个数字
- 给定一个数组,找出不在数组中的最小的那个数字
- 给定一个数组,找出不在数组中的最小的那个数字
- 【算法】(遇到的问题)给定一个数组,找出不在数组中的最小的那个数字
- leetcode_448. Find All Numbers Disappeared in an Array 找出不在数组中的数,正负号标记法
- 找出数组中的最大值
- 找出数组中的峰值
- 面试题->找出自然数
- 找出数组中的Single Number
- 找出数组中的主元素
- 找出一个数组中的”单身“
- 找出二维数组中的鞍点
- 找出数组中的重复元素
- 找出数组中的“单身狗”
- 找出最长连续自然数个数
- 9. Palindrome Number
- 用好你的Control键(针对类Unix系统用户)
- 【python开发】利用PIP3的时候出现的问题Fatal error in launcher: Unable to create process using '"'
- Python学习笔记(三)
- CompletionService
- 找出不在预定数组中的自然数
- Devops学习实践(二) Jenkins安装、配置、任务构建
- 【PostgreSQL-9.6.3】函数(1)--数值型函数
- html嵌入多媒体文件
- html嵌入mp3
- 天天写业务代码的程序员怎么成为大牛(转自知乎李运华的回答 PS:很干货)
- html嵌入动画
- Openjudge 螺旋加密
- html中插入javascript脚本画条直线