生成长度为n的int型随机数组,数组元素范围为0~n-1,每个元素都是唯一的。只使用基本数据类型。

import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
import java.util.Scanner;

/*
生成长度为n的int型随机数组,数组元素范围为0~n-1,每个元素都是唯一的。只使用基本数据类型。
 */
class Solution {
    public static void rand(int[] arr, int n) {
        for(int i = 0; i < n; i++) {
            arr[i] = i;
        }
        //0 1 2 3 4...n-1
        for (int i = arr.length-1; i > 0; i--) {
            int r = new Random().nextInt(i+1);
            int tmp = arr[i];
            arr[i] = arr[r];
            arr[r] = tmp;
        }
    }
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int[] arr = new int[n];
        rand(arr, n);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

原文地址:https://www.cnblogs.com/Roni-i/p/12444898.html

时间: 2024-10-24 06:00:07

生成长度为n的int型随机数组,数组元素范围为0~n-1,每个元素都是唯一的。只使用基本数据类型。的相关文章

2015春季腾讯实习在线测试题之求int型字节长度,不准用sizeof

不使用sizeof,求某机器平台的int型整数位数(16,32,64) 思路,将整数变成字符串处理,并且在内存的末尾填零,即字符串结束符. 如 0x0012,0x00123456,0x00123456789ABCDE分别对应16,32,64位数; 小端机 代码 #include <stdio.h> #include <string.h> int main(int argc , char *argv[]) { intn16 = 0x0012; /* 此处用于填充内存防止出现内存连续

int型动态数组总结

简单的数据结构之-int型动态数组 这个貌似没有参考可以借鉴,如果哪位有幸看到,请您给我说一下哈!再次感谢各位了! 想关的参看的资料来自某培训机构,我是参照动态数组写的 想关的介绍文章 C语言中文网:http://c.biancheng.net/cpp/html/2790.html 数组都有一个固定的长度,超出它的长度就无法再添加新的元素,但是动态数组可以动态的增加数组的长度,可以无限的插入数据. // 动态数组是一个不存在的数据类型,所以需要定义一个结构体来说明动态数组的类型,数组需要空间存储

angularJs select ng-options 绑定int型的时候绑定失效的坑

<select ng-model="editObj.AdType" ng-options=" type.id as type.name for type in adTypes "></select> 其中type.id是int,这样绑定后下拉框会生成.但是不管editObj.AdType的值是什么都无法绑定成功. 原因在于ng-options会把int型自动转成string.我们要把它转回来就可以了. <select ng-model=

char 变成int型后的符号位扩展

二进制负数: 原码就是原来的表示方法 反码是除符号位(最高位)外取反 补码=反码+1 1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128-127.它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示27个数的绝对值,再考虑正负两种情况,27*2还是256个数.首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000001到011111

C++ 指针(不论什么一个指针本身的类型都是unsigned long int型)

1.指针数组: 即 数组的元素是指针型; 例:int*pa[2]; 明明是一维的指针数组.竟当作二维数组用. [cpp] view plain copy //利用指针数组存放单位矩阵 #include <iostream> using namespace std; void main() { int line1[]={1,0,0}; //声明数组,矩阵的第一行 int line2[]={0,1,0}; //声明数组,矩阵的第二行 int line3[]={0,0,1}; //声明数组.矩阵的第

大数据Java基础(一)int型与byte型数组的转换

为了在接下来的篇章中讲解用java实现文件的归档和解归档,需要先了解一下Java中int型与byte型数组之间的相互转换. 首先,我们先来看看int型转换成byte型数组. 我们知道,Java中,一个int型占用4个字节,一个byte型占用1个字节,所以,对于一个int型,我们需要一个长度为4的byte型数组来对其进行存储. 31位--24位 23位--16位 15位--8位 7位--0位 一个int型的4个字节如上图所示,假设用来存储的字节数组为bytes[],那么,我们可以用bytes[0]

python 用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数, 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数

#用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数,# 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数import randomn=int(input("请输入整数"))shu=set()i=0while True: num=random.choice(range(1,5*n+1))#生成随机数 shu.add(num) if len(shu)==n: breakprint("n个不重复的随机数是:&qu

【面试题】向一个长度为100的int数组,插入1-100的随机数,不能重复

1 public int[] GetNoRepeatArrayy(int arrLength) 2 { 3 int[] array = new int[arrLength]; 4 IList<int> list = new List<int>(); 5 //准备不重复的数据 6 for (int i = 0; i < array.Length; i++) 7 { 8 list.Add(i); 9 } 10 //将不重复的数据随机插入到数组中 11 for (int j = (

把int型非负数转换为英文

数字转换为英文 输入为int型非负数,最大值为2^31 - 1 = 2 147 483 647 输出为String英文,最大输出为Two Billion One Hundred Forty Seven Million Four Hundred Eighty Three Thousand Six Hundred Forty Seven 输出要求每个单词首字母大写,之间用空格隔开,不需要用“and”做连词 例如: 123 -> "One Hundred Twenty Three" 1