Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在使用随机生成器的数组中查找缺少的数字

在使用随机生成器的数组中查找缺少的数字
EN

Stack Overflow用户
提问于 2017-10-20 18:36:25
回答 5查看 820关注 0票数 0

我正在尝试这样做,这样随机生成器就不会在数组中产生相同的数字。我也不知道怎么才能找到丢失的号码。我尝试了if语句,它可以工作,但它会重复。

问题“查找数组中缺失的数字。该数组由随机序列的1到10组成。数组中的一个数字缺失,您必须找到它。使用一个循环。示例{5,6,9,4,1,2,8,3,10} -结果将是:7

代码语言:javascript
运行
AI代码解释
复制
import java.util.Random;


public class questionThree
{
  public static void main(String[] args)
  {
    int [] numbers = new int [10];
    Random rand = new Random();
    int numArr = 1;

    for (int i = 1; i < 9; i++)
    {
      int n = rand.nextInt(10) + 1; 
      numbers[i] = n;

      if (numbers[i] == numArr)
        numArr++;
      else
        System.out.println("The missing num is " +numArr);
    }

    for(int val : numbers)
    {
      System.out.println("The next value is " +
                         val);
    } 
  }
}
EN

回答 5

Stack Overflow用户

发布于 2017-10-20 18:54:52

假设:

  • number是唯一的
  • 只缺少一个条目
  • number的范围从1到10 (包括1和10)。

解决方案

代码语言:javascript
运行
AI代码解释
复制
return 55 - Arrays.stream(yourArr).sum();

这是O(n)运行时间和O(1)空间复杂度。

如果我们打破假设。

您将需要O(N)空间来找出缺少哪些条目。要保存标记,您可以使用ListBitSet,或者使用2个字节并手动管理它。这里n是随机数生成宽度。

票数 1
EN

Stack Overflow用户

发布于 2017-10-20 18:41:03

似乎没有提到使用临时数据结构。您可以对数组进行排序并查找缺少的数字,也可以使用临时排序的数据结构。

票数 0
EN

Stack Overflow用户

发布于 2017-10-20 18:43:18

你把两件事混在一起了:问题用例的生成器算法和问题本身的解决方案。您根本不应该对“随机数组”是如何生成的感兴趣(除非您想测试您的解决方案)。您当然不应该尝试编写代码来解决生成示例数组的方法中的问题。

如果你想要一个随机排序的列表,Collections.shuffle会帮你处理。如果您想要一个不包含单个元素的列表,只需生成一个包含所有元素1..n的列表,然后删除随机选择的数字(然后进行混洗)。发电机就是这么回事。至于解决方案,有很多方法可以解决,有人已经建议使用求和,这是一个非常有效的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46855327

复制
相关文章
在排序数组中查找数字
思路: 2分查找数组中的第一个k: 1. 如果中间数字大于k,那么k只可能出现在前半段 2. 如果中间数字小于k,那么k只可能出现在后半段 3. 如果中间数字等于k: - 如果中间数字的前面不是k,那么中间数字恰好就是第一个k - 如果中间数字的前面是k,那么第一个k肯定在前半段
用户8639654
2021/07/23
4K0
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4.2K0
如何查找递增连续数组中缺失的数字
在一个长度为n的递增数组中,数组中元素范围是0 ~ n-1,如何在这个递增连续数组中查找缺失的数字? 分析下: 1. 排序数组中的搜索算法,首先想到的就是二分法查找 2. 丢失的数字之前的左子数组:n
一个架构师
2022/06/20
3.3K0
如何查找递增连续数组中缺失的数字
LeetCode89|在排序数组中查找数字I
这道题之前的用法竟然是使用键值对集合HashMap来做的,现在看有点大材小用吧,时间复杂度为O(n),空间复杂度为O(1)就可以了,这或许就是一点个人的思考吧,不同的时间做法就不一样了
码农王同学
2020/10/14
1.4K0
JavaScript算法题:查找数字在数组中的索引[每日前端夜话0x69]
编写算法时,排序是一个非常重要的概念。它有各种各样的种类:冒泡排序、希尔排序、分块排序,梳排序,鸡尾酒排序,侏儒排序 —— 这些可不是我瞎编的!【https://en.wikipedia.org/wiki/Sorting_algorithm】
疯狂的技术宅
2019/05/17
2.1K0
JavaScript算法题:查找数字在数组中的索引[每日前端夜话0x69]
【剑指Offer】53.1在排序数组中查找数字 I
NowCoder 题目描述 统计一个数字在排序数组中出现的次数 Input: nums = 1, 2, 3, 3, 3, 3, 4, 6 K = 3 Output: 4 解题思路 class Solution { public int search(int[] nums, int target) { if(nums == null || nums.length == 0) return 0; // 二分 i
瑞新
2020/12/07
9810
【每日一题】【leetcode】11. 数组-在排序数组中查找数字
题目 统计一个数字在排序数组中出现的次数。 难易程度:easy 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制: 0 <= 数组长度 <= 50000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof 著作权归
aneutron
2022/08/10
1K0
【剑指offer|5.在排序数组中查找数字I】
0.在排序数组中查找数字I 1.低效率方法© 通过二分查找找到目标值, 局部时间复杂度O(logN); 然后在目标值左右扫描, 直到分别扫描到第一个3和最后一个3, 因为要查找的数字在长度为N的数组中可能出现N次, 所以局部时间复杂度O(N); 总体时间复杂度O(N),效率很低,和直接遍历扫描数个数的笨方法时间复杂度相同O(N),不可取 int BinarySearch(int* nums, int numsSize, int target) { int left = 0, ri
MicroFrank
2023/04/12
9150
【剑指offer|5.在排序数组中查找数字I】
有序数组中查找具体数字n(二分查找)
   我们先定义一个有序的数组arr,再设置数组中的一个数字k为我们所寻找的值,当数字与算法结果匹配时,打印“找到了,下标为–”,若该数字在数组中未查找到,则打印“找不到”。   因为该数组是有序的,我们可以利用一个循环结构,当i
RAIN7
2021/08/11
8690
在Python中进行机器学习,随机数生成器的使用
随机性一直是机器学习的重中之重。随机性一直作为工具或特征,出现在数据准备和学习算法中,将输入数据映射到输出数据以作出预测。为了理解机器学习中的统计方法,你必须了解机器学习中随机性的来源,即一种叫做伪随机数生成器的数学工具。
AiTechYun
2018/07/27
1.8K0
在Python中进行机器学习,随机数生成器的使用
[剑指offer] 数组中重复的数字
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。
尾尾部落
2018/09/04
2.2K0
数组中重复的数字
在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。
MickyInvQ
2021/10/22
2.4K0
【说站】python随机数种子在多维数组的使用
1、运行test_mult_shape函数,设定相同的随机数组,两次运行两个一行的多维正态分布的结果。
很酷的站长
2022/11/24
6620
【说站】python随机数种子在多维数组的使用
二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
用户3003813
2018/09/06
2.1K0
[剑指offer] 二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
尾尾部落
2018/09/04
2.3K0
[剑指offer] 二维数组中的查找
二维数组中的查找
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1946753
后端码匠
2021/08/18
1.8K0
二维数组中的查找
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
崩天的勾玉
2021/12/20
1.6K0
二维数组中的查找
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
MickyInvQ
2021/10/26
1.8K0
LeetCode-面试题53-1-在排序数组中查找数字I
在有序的数组中二分查找,确定第一个k出现的位置和最后一个k出现的位置,然后两个位置相减即是出现次数
benym
2022/07/14
5620
剑指Offer - 面试题53 - I. 在排序数组中查找数字 I(二分查找的变形版本)
类似题目:LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
Michael阿明
2020/07/13
9060
剑指Offer - 面试题53 - I. 在排序数组中查找数字 I(二分查找的变形版本)

相似问题

查找数组中缺少的数字

60

查找数组中缺少的数字

61

在JavaScript数组中查找缺少的数字

13

数组-在序列中查找缺少的数字

1613

使用XOR在Python中查找数组中缺少的数字

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档