首页 > 华为笔试题---明明的随机数

华为笔试题---明明的随机数

题目

  • 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

    - - -
  • 输入输出


    Input Param

    n 输入随机数的个数

    inputArray n个随机整数组成的数组

    Return Value

    OutputArray 输出处理后的随机整数

    注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。

    输入描述

    输入多行,先输入随机整数的个数,再输入相应个数的整数

    输出描述

    返回多行,处理后的结果


package 华为笔试题.明明的随机数;import java.util.Scanner;/*** @Author: Lance* @Date: 2018/8/7 16:03*/
public class Main
{public static void main(String[] args){Scanner scanner = new Scanner(System.in);while (scanner.hasNext()){int temp = scanner.nextInt();int[] flag = new int[temp + 1];for (int i = 1; i <= temp; i++){flag[i] = scanner.nextInt();}Main test = new Main();int[] newArr = test.insertSort(flag);for (int i = 1; i < newArr.length; i++){if (newArr[i] == newArr[i - 1]){continue;}System.out.println(newArr[i]);}}//创建对象实现方法}public int[] insertSort(int[] arr){if (arr.length == 1 && arr.length == 2){return null;}for (int i = 1; i < arr.length; i++){//以下一行代码可以理解为,我扣了i张牌,第i张牌和前i-1张牌依次对比for (int j = i - 1; arr[j] >= 0 && arr[j] > arr[j + 1]; j--){swap(arr, j, j + 1);}}return arr;}public void swap(int[] arr, int i, int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}/*** 删除数组中多余的元素** @param arr* @return*/public int[] removeDuplicates(int[] arr){int cout = 0;for (int i = 0; i < arr.length; i++){for (int j = i + 1; j < arr.length; j++){if (arr[i] == arr[j]){cout++;break;}}}int lenth = arr.length - cout;int[] newArr = new int[lenth];if (arr.length == 1){return arr;}int index = 1;newArr[0] = arr[0];for (int i = 1; i < arr.length; i++){if (arr[i] != arr[i - 1]){newArr[index++] = arr[i];}}return newArr;}
}

转载于:https://www.cnblogs.com/lancexu/p/9439277.html

更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • 题目:最小的k个数 入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k = 1 输出:[0...

  • //自定义深度复制对象or数组的递归方法---------------------------------------- let copyObjOrArr = o => {let isArray = o instanceof Array;let isObject = o instanceof Object;if (!isObject)...

  • var array = {/* 数组求和*/sum: arr => eval(arr.join("+")),/* 判断一个数组(支持一个字符串)里面的是否有任何一个元素被包含在了某个字符串里面 */isStringContain(str, arr) {Array.isArray(arr) || (arr = [arr]);for (v...

  • 经过调研发现,对任意无序整数数组,快速排序有两种实现方法,这里简单阐述下思路: 思路一:随意选择一个基准元,一般选择数组的起始元或末尾元,Weiss这本书上特意搞了个算法来选择基准元,……,总之就是基准元的选择要尽量随机。选定基准元之后,比如选择数组起始元为基准元,从数组右边开始,向左边遍历,遇到比基准元大的跳过,直至遇到比基准元小...

  • 下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序。整理出来以作备忘,不足之处,欢迎大家批评指正!其中计数排序分别给出了不稳定和稳定两种排序算法,测试时,使用随机生成大数组和随机手动输入的方法来测试。...