网站首页 > 精选教程 正文
给出一个长度为n+1的列表,它的数值范围从1到n,其中一个数字是重复的,你必须找到重复的数字。这个问题非常类似于在数组中查找缺少的数字。在这篇文章中,我将分享一个java程序和算法,以找到1到n个数字之间的重复数字。
算法
1.计算列表中所有数字的总和。
2.计算列表中唯一数的大小n,并使用算术级数公式n*(n+1)/2
3.从第一步减去第二步中所得到的数值,你将得到重复的数字。
Java程序
import java.util.List;
import java.util.ArrayList;
public class DuplicateNumberProgram {
public static void main(String args[]) {
// Creating the list
List<Integer> numbers = new ArrayList<Integer>();
// Add numbers from 1 to n
for(int i=1; i < 40; i++) {
numbers.add(i);
}
// adding duplicate number into the list
numbers.add(35);
DuplicateNumberProgram obj = new DuplicateNumberProgram();
int duplicateNumber = obj.getDuplicateNumber(numbers);
System.out.println(duplicateNumber);
}
public int findSum(List<Integer> numbers) {
int sum =0;
for(int number : numbers) {
sum += number;
}
return sum;
}
public int getDuplicateNumber(List<Integer> numbers) {
int n = numbers.size()-1;
int total = findSum(numbers);
int duplicateNum = total - (n * (n+1)/2);
return duplicateNum;
}
}
产出:
35
这就是今天的全部内容,请在评论中提到,如果您有任何问题,请查找Java中1到n个数字之间的重复编号。
- 上一篇: Java训练一个手写数字识别的DeepLearning模型
- 下一篇: Java switch
猜你喜欢
- 2024-12-29 Log4j 爆“核弹级”漏洞,Flink、Kafka等至少十多个项目受影响
- 2024-12-29 Java switch
- 2024-12-29 Java训练一个手写数字识别的DeepLearning模型
- 2024-12-29 美团面试:new Integer("127")和Integer.valueOf("128")有区别吗
- 2024-12-29 为什么Java中1==1为真,而128==128为假?基于享元模式的整数缓存
- 2024-12-29 为什么在Java中128==128为假
- 2024-12-29 Java水仙花数
- 2024-12-29 如何检查 Java 数组中是否包含某个值?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)