当前位置:   article > 正文

数组中重复的数字(leetcode每日打卡)_import java.util.hashset; import java.util.scanner

import java.util.hashset; import java.util.scanner; import java.util.set; pu
  1. package leetcodeday1;
  2. import java.util.HashSet;
  3. import java.util.Set;
  4. public class SelectArrayRepeat {
  5. //找到数组中重复的数字
  6. //在一个长度为n的数组num中所有数字都在0 n-1的范围内,数组内某些数字是重复的,但不知道哪些重复了
  7. //请找出数组中任意一个重复的数字
  8. public int findRepeatNumber(int [] nums){
  9. //使用原地交换法
  10. int i=0;
  11. while (i<nums.length){
  12. if (nums[i]==i){
  13. i++;
  14. continue;
  15. }
  16. if (nums[nums[i]]==nums[i]){
  17. return nums[i];
  18. }
  19. int tmp=nums[i];
  20. nums[i]=nums[tmp];
  21. nums[tmp]=tmp;
  22. }
  23. return -1;
  24. }
  25. public int findRepeatNumber2(int [] nums){
  26. //使用集合法
  27. Set<Integer> set = new HashSet<>();
  28. for (int num : nums) {
  29. if (set.contains(num)){
  30. return num;
  31. }
  32. set.add(num);
  33. }
  34. return -1;
  35. }
  36. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号