据传说是MS/Google等等IT名企业的面试题:
有一组数字,从1到n,中减少了一个数,顺序也被打乱,放在一个n-1的数组里
请找出丢失的数字,最好能有程序,最好算法比较快
假如有1,2,3,···,10十个数字,并且少了5,那么遍历数组求和得到50,在遍历的过程中得知最大数字为10,那么如果不少5,全部数字和为55,则缺少的数字为55-50=5
如果少了10,那么遍历数组得到的和为45,最大数字为9,和依然为45,45-45=0,则丢失的数字为9+1=10
或者就是申请n-1个空间,遍历标记!
import java.util.Arrays;
import java.util.Random;
public class FindLostNumber {
public static int findLostNumber(int[] Data){
int sum = 0;
int max = 0;
int total = 0;
for(int i=0; i<Data.length; i++){
if(Data[i]>max){
max = Data[i];
}
sum += Data[i];
}
total=(max*(max+1))/2;
int lost = total-sum;
if(lost>0){
return lost;
}else{
return max+1;
}
}
public static void main(String[] args){
Random random = new Random();
int lost = random.nextInt(4999)+1;
System.out.println("I lost "+lost);
int[] elements = new int[5001];
//第一种方法
int index = 0;
for(int i=1; i<=5000; i++){
if(i==lost){
continue;
}
elements[index++] = i;
}
int find = findLostNumber(elements);
System.out.println("I find you lose "+find);
//第二种方法
boolean[] mark = new boolean[5001];
Arrays.fill(mark, false);
for(int i=0; i<elements.length; i++){
mark[elements[i]] = true;
}
for(int i=1; i<mark.length; i++){
if(!mark[i]){
System.out.println("You lost "+i);
}
}
}
}
分享到:
相关推荐
"找回遗失"意味着该服务或工具能够处理各种类型的数据丢失情况,包括误操作、系统崩溃等。 描述中的“数据恢复,轻松搞定”强调了这个过程的简便性,意味着用户无需具备高级的IT技能也能进行操作。"把丢失数据的...
标签 "Find two lost number O(n)" 明确指出了这个问题的关键在于寻找丢失的两个数字,并且要求在O(n)的时间复杂度内完成。这提醒我们在设计算法时,必须关注时间效率,避免不必要的复杂度。 在压缩包文件...
标题中的“找到所有数组中消失的数字(桶排序+索引映射遍历)1”指的是一种在整型数组中寻找丢失数字的算法。数组的特性是元素值在1到n之间,其中n是数组的大小,部分元素出现了两次,部分只出现一次。目标是找出...
本文将详细介绍如何使用名为"FinddDta"的工具来快速找回丢失的文件,无论它们是因为被格式化还是误删除。 首先,我们需要理解文件是如何在硬盘上存储的。计算机硬盘上的每个文件都有一个特定的文件分配表(FAT)或...
因此,对于研究人员和工程师来说,重新审视这些理论并寻找更优化的解决方案至关重要。未来的研究应该更加注重理论与实践之间的联系,以及如何利用现代信号处理技术来改进现有模型,从而实现更高性能的数字通信系统。
本文将详细阐述“丢失文件找回”这一知识点,以及如何利用文件恢复工具来解决这类问题。 首先,我们要理解文件丢失的常见原因。误删除是最常见的原因之一,用户可能在清理硬盘空间时不小心将重要文件移入回收站并...
无损压缩能够完全恢复原始数据,而有损压缩则会在压缩过程中丢失部分信息。 3. 图像旋转公式:将图像逆时针旋转β角度的矩阵表示为F' = R(β) * F,其中R(β)是旋转矩阵,F是原图像的傅里叶变换。 4. 图像增强评价...
这可能是一个遗失了扩展名的文件,内容可能与《数字信号处理教程》的习题解答有关,或者是补充材料,如课堂讲义、实验指导或其他相关资料。 通过这个压缩包,学生不仅可以获得《数字信号处理教程》的习题答案,还能...
**K-最近邻算法(K-Nearest Neighbors,KNN)**是一种简单而有效的非参数监督学习方法,它通过寻找训练集中与新样本最接近的K个邻居来决定新样本的类别。在手写数字识别问题中,每个样本是手写数字的图像,我们利用...
在这种情况下,你可能需要手动输入大写数字或者寻找其他方法来完成转换。 通过以上步骤,你可以轻松地在Word2021中将阿拉伯数字转换为大写数字,从而增加文档的正式感和安全性。这种功能特别适合处理财务数据、合同...
《现在数字信号处理答案(姚天任)》是一份珍贵的学习资源,主要针对ADSP2000级的课程提供习题解答。这份资料对于正在学习...因此,对于寻找《现在数字信号处理答案(姚天任)》的人来说,这份资源无疑是宝贵的财富。
"找回丢失的密码"是解决这一问题的重要步骤,对于确保我们的数字生活正常运作至关重要。 QQ是一款由腾讯公司推出的即时通讯软件,广泛应用于社交、工作和其他在线交流。如果用户不小心忘记了QQ密码,腾讯提供了一套...
2. 实时追踪:GPS和物联网技术让货物位置随时可见,提升货物安全,降低丢失风险。 3. 预测性维护:利用数据分析预测设备故障,提前进行维修,避免停机损失。 4. 自动化仓库:机器人和自动化系统提升仓储效率,减少...
如果图像直方图集中在某一亮度区域,图像可能会显得过于暗或亮,导致细节丢失。直方图均衡化通过改变像素值的分布,使得图像的亮度层次更加丰富,从而增强整体视觉效果。这个过程涉及到对图像像素值的重新映射,确保...
私钥必须妥善保管,因为一旦丢失或被盗,数字资产将无法找回。数字钱包通常有多种类型,包括在线钱包、本地钱包和离线钱包。 - **在线钱包**:私钥由服务提供商托管,用户通过登录验证访问,如Blockchain.info。 - ...
- **线性归一化**:对图像进行简单的比例缩放,适用于数学处理简单但可能丢失部分形状信息的情况。 - **非线性归一化**:更为复杂的处理方式,能够更好地保留字符形状结构,但计算成本较高。 - **特征提取** - **...
"丢失数据快速恢复软件"是针对这种问题的解决方案,旨在帮助用户迅速找回意外丢失的数据。这类软件通过深度扫描硬盘或其他存储设备,寻找并恢复已被删除或因各种原因无法访问的文件。 数据丢失的原因多种多样,包括...
在这个方法中,我们需要注意的是,我们的微博好友需要是我们互相信任的朋友,因为他们需要帮助我们找回账号。如果我们不熟悉自己的微博好友,或者他们不愿意帮助我们,那么这个方法可能不适用。 三、微博账号找回的...