这是一道简单的面试题,我本着是否能找出更好的方法来,在网上找了很多别人的方法,把code都copy下来运行,发现还是有错误.所以自己就写了一个累赘的例子,不过不会有错.
思路:采用Random得到1-100的随机数(因为Random取值是0<=a<1之间的数,所以采用了一个三目运算),这个面试题的难点是取出1-100中随机而又不重复的整数.然后用1-100的总和减去99个随机数的总和,这样就得到了未放进的数.
package random;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
public class RandomTest2 {
public int[] array = new int[99];
private Object[] array1;
private int tmp;
int sum = 0;
public void init() {
Random random = new Random();
SortedSet set = new TreeSet();//根据其特性,set集合中不会保存重复的元素
for (int i = 0; i >= 0; i++) {
if (set.size() > 98) {
break;
}
tmp = random.nextInt(100);//得到1-100中的99个随机数
tmp = tmp == 0 ? 100 : tmp;//将得到0转换成100
set.add(tmp);
}
List list = new ArrayList();
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
list.add(iterator.next());
}
array1 = list.toArray();
}
public void getArray() {
for (Object ii : array1) {
int a = Integer.parseInt(ii.toString());
sum += a;
}
System.out.println(5050 - sum);
}
public static void main(String[] args) {
for (int i = 0; i < 101; i++) {
RandomTest2 rt = new RandomTest2();
rt.init();
rt.getArray();
}
}
}
分享到:
相关推荐
描述中的 "本代码通过“打擂台”,选出数组中最大的一项" 提示我们,这个实现可能采用了一种迭代的方法,即遍历整个数组,每次将当前元素与已知的最大值进行比较,更新最大值。这种方法被称为线性搜索,它的效率在最...
然后,通过一个for循环从数组的第二个元素开始遍历,如果当前元素大于已知的最大值,就更新最大值。当遍历完整个数组后,返回找到的最大值。 这种方法虽然简单,但效率并不高,因为它的时间复杂度是O(n),其中n是...
数组名实际上是一个常量指针,它表示数组的起始地址,一旦声明,数组的大小和地址便不可改变。数组元素可以通过索引访问,如`a[i]`,其中`i`是0到数组长度减1之间的整数。例如,字符数组`char a[] = "hello"`,其...
在Java编程中,查找数组中的重复元素是一项常见的任务,尤其在数据处理和算法设计中扮演着重要角色。这个详细教程将引导我们通过源代码来理解如何有效地实现这一功能。在这个"Java实例 - 查找数组中的重复元素源代码...
1. **查找重复元素**:在LabVIEW中,可以通过比较数组中的每一个元素与其余元素来找出重复项。这可以通过循环结构(例如For Loop或While Loop)配合条件判断(如Relational Operator VI)来实现。对于大数组,使用...
本文将详细介绍如何通过编写Java程序,在一个二维数组中查找最大值及其位置。本程序适用于任何大小的数组,并能准确地返回最大值所在的行和列索引。 #### 程序结构分析 1. **类与方法定义**: - 定义了一个名为`...
在这个问题中,我们关注的是一个特定的int数组{1, 3, 5, -2, 4, 6},我们需要计算这个数组中的最大值、最小值、元素和以及平均值。这些都是数据分析和算法基础中的关键概念。 1. **最大值**:数组中的最大值是指...
已知一个int数组, 编程从数组中获取最大数,初学者,不知道是否正确。
在上述文件中,我们看到了与编程基础相关的一些题目,它们涉及到了一维数组的基本操作和应用。接下来,我将详细解读文件中提及的各个知识点。 1. 与指定数字相同的数的个数 这个题目要求编写一个程序来计算在给定的...
一种常见的方法是遍历整个数组,初始化两个变量(一个用于最大值,一个用于最小值),然后在每次迭代中比较当前元素与已知的最大值和最小值。 寻找最大值的代码示例: ```java int max = numbers[0]; // 假设数组...
标题中的“求一个数组中第K个最大值和最小值”是一个常见的算法问题,这个问题在计算机科学和编程领域中有着广泛的应用。它涉及到数组处理、排序以及数据查找等基本概念。接下来,我们将深入探讨这个问题的解决方案...
在LabVIEW编程环境中,删除一维数组中的所有0元素是一个常见的操作,特别是在处理数据过滤、数据分析或信号处理等任务时。下面将详细讲解如何在LabVIEW中实现这一功能。 首先,我们需要理解LabVIEW的基本概念。...
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
例5.1 输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。 例5.2 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。 例5.3 一维...
1. 第一行:两个整数n和x,其中n表示自然数的个数,x表示要查找的自然数。 2. 接下来n行:每行一个自然数。 #### 输出格式 对于每组输入,如果找到了x,则输出该自然数及其出现的次数;如果未找到,则输出NO。 ###...
在编程领域,数组是最基本的数据结构之一,而寻找数组中最大和的子数组问题是一个经典的算法问题,它属于动态规划的范畴。这个问题的目标是找到数组中的一个连续子数组,使得这个子数组的所有元素之和最大。 首先,...
- 功能描述:此方法用于从当前对象`c`数组中删除一个指定的整数。 - 实现思路:首先提示用户输入需要删除的整数。然后遍历数组`c`,找到该整数的位置,之后通过移动数组中的其他元素来完成删除操作。 ### 主程序...
- `Math.random()`返回一个0.0到1.0之间的浮点数,包括0.0但不包括1.0。在生成随机整数时,可以乘以目标范围上限(n+1)并向下取整,如`int num = (int)(n * Math.random())`。 7. **处理随机数数组** - 示例代码...
- 当`i == j`时,表示当前数组只包含一个元素,因此直接返回该元素即可。 3. **递归情况**: - 使用`(i + j) / 2`来计算数组中间的位置`m`,将数组分为两半。 - 对左边的数组进行递归调用:`max1 = Max(A, i, m)...
我们首先定义了一个整数数组`arr`和一个目标元素`target`,然后使用二分法查找`target`在`arr`中的下标`index`,如果`index`为-1,则表示`target`不存在于`arr`中,我们可以将其插入到`arr`中,使插入后的数组仍然...