From 1c871a9eb0d5a556b41409ac86750b878dd72e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=8A=9B?= <171250568@smail.nju.edu.cn> Date: Wed, 11 Nov 2020 14:41:25 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90645.=20=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=9B=86=E5=90=88=E3=80=91=E3=80=90Java=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\347\232\204\345\205\203\347\264\240.md" | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\347\274\272\345\244\261\345\222\214\351\207\215\345\244\215\347\232\204\345\205\203\347\264\240.md" "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\347\274\272\345\244\261\345\222\214\351\207\215\345\244\215\347\232\204\345\205\203\347\264\240.md" index 06e554f..52c8d78 100644 --- "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\347\274\272\345\244\261\345\222\214\351\207\215\345\244\215\347\232\204\345\205\203\347\264\240.md" +++ "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\347\274\272\345\244\261\345\222\214\351\207\215\345\244\215\347\232\204\345\205\203\347\264\240.md" @@ -1,4 +1,4 @@ -# 如何寻找缺失和重复的元素 +# 如何寻找缺失和重复的元素

@@ -139,4 +139,30 @@ vector findErrorNums(vector& nums) {

-======其他语言代码====== \ No newline at end of file +======其他语言代码====== + +[zhuli](https://github.com/1097452462 "zhuli")提供的Java代码: +```java +class Solution { + public int[] findErrorNums(int[] nums) { + int n = nums.length; + int dup = -1; + for (int i = 0; i < n; i++) { + // 元素是从 1 开始的 + int index = Math.abs(nums[i]) - 1; + // nums[index] 小于 0 则说明重复访问 + if (nums[index] < 0) + dup = Math.abs(nums[i]); + else + nums[index] *= -1; + } + int missing = -1; + for (int i = 0; i < n; i++) + // nums[i] 大于 0 则说明没有访问 + if (nums[i] > 0) + // 将索引转换成元素 + missing = i + 1; + return new int[]{dup, missing}; + } +} +``` \ No newline at end of file -- GitLab