[LeetCode]645. Set Mismatch
来源:互联网 发布:上古卷轴mod知乎 编辑:程序博客网 时间:2024/06/06 03:47
其实还是那种利用【数组元素->数组下标】来【转换正负性】的问题。
The set S
originally contains numbers from 1 to n
. But unfortunately, due to the data error, one of the numbers in the set got duplicated to another number in the set, which results in repetition of one number and loss of another number.
Given an array nums
representing the data status of this set after the error. Your task is to firstly find the number occurs twice and then find the number that is missing. Return them in the form of an array.
Example 1:
Input: nums = [1,2,2,4]Output: [2,3]
Note:
- The given array size will in the range [2, 10000].
- The given array's numbers won't have any order.
我的繁琐办法:
public class Solution { public int[] findErrorNums(int[] nums) { int[] res = new int[2]; if(nums==null || nums.length<2) return res; int n=nums.length; Map<Integer, Integer> map = new HashMap<>(); for(int i=0; i<nums.length; i++){ map.put(nums[i],map.getOrDefault(nums[i],0)+1); map.put(i+1,map.getOrDefault(i+1,0)+1); } for(int key:map.keySet()) if(map.get(key)==3) res[0]=key; for(int key:map.keySet()) if(map.get(key)==1) res[1]=key; return res; }}
方法二,利用下标:
public static int[] findErrorNums(int[] nums) { int[] res = new int[2]; for (int i : nums) { if (nums[Math.abs(i) - 1] < 0) res[0] = Math.abs(i);else nums[Math.abs(i) - 1] *= -1; } for (int i=0;i<nums.length;i++) { if (nums[i] > 0) res[1] = i+1; } return res;}
阅读全文
0 0
- leetcode 645. Set Mismatch
- [LeetCode]645. Set Mismatch
- 【LeetCode】645. Set Mismatch
- LeetCode 645. Set Mismatch
- leetcode 645. Set Mismatch
- [LeetCode]645. Set Mismatch
- leetcode 645. Set Mismatch
- Leetcode 645. Set Mismatch 找缺值 解题报告
- LeetCode 645 Set Mismatch
- Leetcode 645 Set Mismatch
- leetcode--645--Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 2017.12.25 LeetCode 645. Set Mismatch 【思维查找】
- [随心译]2017.8.6-增强与虚拟现实的消费每年都在翻倍
- rxjs -- 响应式编程
- 成为IT精英,我奋斗了七年
- POJ1737 Connected Graph【数学】
- 【Angular2】手风琴样式页面制作
- [LeetCode]645. Set Mismatch
- Rank of Tetris HDU
- laravel5.4生成验证码
- 经纬度算两点距离
- 第十七章 优于select的epoll
- 完美世界hr给大家的简历修改和面试的建议
- 设计模式
- Android Studio利用GitHub托管项目
- Educational Codeforces Round 26 A B C 三道水题