《Java面试试题》找出连续数组中相同的两个数值
来源:互联网 发布:java英语面试题 编辑:程序博客网 时间:2024/05/16 12:52
如题:
Find out duplicate number between 1 to N numbers.
描述:
You have got a range of numbers between 1 to N, where one of the number is repeated. You need to write a program to find out the duplicate number.
代码:
package test;import java.util.ArrayList;import java.util.Iterator;/* * You have got a range of numbers between 1 to N, where one of the number is repeated. * You need to write a program to find out the duplicate number. */public class DuplicateNumber { /* * 1, 2, 2, 3, 4 ---- Duplicated List * Sum(Duplicated List) - 4*5/2 = 2 */ public int findDuplicatNumber(ArrayList<Integer> numberList){ // If there exists a duplicated number, the biggest number in the list is size-1; int biggestNum = numberList.size() - 1; // 2S = n*(n+1) int duplicatedNum = sumList(numberList) - biggestNum*(biggestNum+1)/2; return duplicatedNum; } // get the summation of the list public int sumList(ArrayList<Integer> numberList){ int sum = 0; for (int num : numberList) { sum += num; } return sum; } public static void main(String[] args) { ArrayList<Integer> numberArrayList = new ArrayList<Integer>(); for (int i = 1; i <= 20; i++) { numberArrayList.add(i); } numberArrayList.add(10); DuplicateNumber dumTest = new DuplicateNumber(); System.out.println(dumTest.findDuplicatNumber(numberArrayList)); }}
使用数组的前N项和公式,然后根据连续的特性,利用差值求出数组中重复的数据。
要点
1. Java数组的ArrayList使用方法
2. 数组求和的方法
0 0
- 《Java面试试题》找出连续数组中相同的两个数值
- 两个数组中找出相同的元素
- 找出两个数组中相同的元素
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- JAVA试题:输出字符串中连续两个相同子串
- C++找出两个数组中不相同的数
- 【一个小实验】找出两个数组中相同的元素
- 找出两个有序数组中相同的元素
- 《Java面试试题》找出前半部分数组和后半部分数组之和相同的索引
- java找出两个字符串相同的元素
- 给定两个排好顺序的数组,快速找到两数组中相同的数值
- 面试题——找出数组中不相同的所有元素(是数组,不是集合)
- 找出数组中缺失的两个数(数组长度为98,数值范围1-100,数值无重复)
- JavaShowAlgorithm-找出数组中相同的元素
- 找出升序数组中元素之和最接近于给定数值的两个数
- 从数组中找出两个元素的和等于指定数值,并输出位置。
- 实训汇编语言设计——找出两个数组中相同的整数
- 找出两个数组中相同的元素,不排序直接两次循环取出
- gradle DSL method not found: android()错误解决办法
- CreateDIBitmap与CreateDIBSection
- Codeforces#86D Powerful array(分块暴力)
- Jquery命名冲突解决的五种方案
- Can't create table './store/#sql-b2c_1a.frm' (errno: 150)解决方法
- 《Java面试试题》找出连续数组中相同的两个数值
- Struts2使用过滤器验证登陆状态
- Struts2--针对session使用过滤器
- Struts2自定义拦截器实例—Session超时的处理
- Struts2拦截器深度解读
- 华为荣耀3c安装google play store
- 《Java面试试题》找出前半部分数组和后半部分数组之和相同的索引
- 如何在sublime text运行javascript
- UINavigationController纯代码实现细节提示