【精】LintCode领扣算法问题答案:1112. 寻找数据错误
发布日期:2021-06-30 17:09:53
浏览次数:2
分类:技术文章
本文共 1560 字,大约阅读时间需要 5 分钟。
1112. 寻找数据错误
描述
集合S中原本包含数字1到n。但不幸的是,由于数据错误集合中的一个数变成了集合中的另一个数,这导致集合中有两个重复的数,并且集合中缺失了1到n的某个数。
给定数组nums,表示发生错误后的数组,以数组的形式返回重复的数值和缺失的数值。
- 数组的大小范围为[2, 10000]。
- 数组元素是无序的。
样例 1:
输入: nums = [1,2,2,4]输出: [2,3]解释: 2是重复的数,3是缺失的数。
样例 2:
输入: nums = [1,3,3,4]输出: [3,2]解释: 3是重复的数,2是缺失的数。
文章目录
题解
public class Solution { /** * @param nums: an array * @return: the number occurs twice and the number that is missing */ public int[] findErrorNums(int[] nums) { // Write your code here Arrays.sort(nums); int[] ret = new int[2]; int offset = 1; for (int i = 0; i < nums.length; i++) { if (ret[1] == 0 && nums[i] != i + offset) { ret[1] = i + offset; } if (ret[0] == 0 && nums[i] == nums[i + 1]) { ret[0] = nums[i]; if (ret[1] == 0) { if (i + 2 < nums.length) { if (nums[i + 2] != nums[i] + 1) { ret[1] = i + 1 + offset; break; } } else { ret[1] = i + 1 + offset; break; } } offset--; i++; } } if (ret[1] == 0) { ret[1] = nums.length; } return ret; }}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由博客原创,转载请注明来源,谢谢~
转载地址:https://le-yi.blog.csdn.net/article/details/108841684 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月20日 23时06分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MATLAB与CUDA
2019-04-30
Linux png转jpg (convert命令)
2019-04-30
NAS (Network Attached Storage 网络附属存储)
2019-04-30
Ubuntu更新后终端中字体的颜色全是白色
2019-04-30
Ninja
2019-04-30
lmdb数据库的读取与转换(一) —— 基本操作
2019-04-30
opencv相关操作(cv2) (python)
2019-04-30
lmdb数据库的读取与转换(二) —— 数据集操作
2019-04-30
Lua语言
2019-04-30
Python __doc__获得模块的文档字符串内容
2019-04-30
Python sys.path和模块搜索路径
2019-04-30
github.io网页无法打开(连接不是私密连接)
2019-04-30
git submodule
2019-04-30
linux中source、sh、bash、./有什么区别
2019-04-30
vscode git
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2FSK
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30