首页 > 其他分享 >HashSet集合 Array sort方法 学习 剑指offer 练习1

HashSet集合 Array sort方法 学习 剑指offer 练习1

时间:2022-10-24 18:01:44浏览次数:55  
标签:sort return offer int nums sites HashSet add

HashSet集合是基于HashMap来实现的,不允许有重复的元素

                允许有NULL值

      无序,不会记录插入的顺序

HashSet 实例化对象

   HashSet<String> sites =new HashSet<String>();

HashSet 类  

   方法

      add()方法    重复的元素不会被添加

      contains()方法 判断元素是否存在于集合当中返回布尔值

      remove()方法 删除出集合中的元素

      clear()方法  删除集合中的所有元素

      size()方法 计算集合中的元素数量

      for-each方法  来迭代HashSet中的元素

import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
            // 重复的元素不会被添加
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

剑指offer

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1:

输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3 

限制:

2 <= n <= 100000

class Solution {
    public int findRepeatNumber(int[] nums) {
        Set<Integer> set = new HashSet<Integer>();
        int repeat =-1;
        for(int num:nums){
            if(!set.add(num)){
                repeat = num;
                break;
            }
        }
        return repeat;
    }
}

也可用HashSet中的contains()方法进行判断

class Solution {
    public int findRepeatNumber(int[] nums) {
        HashSet<Integer> set = new HashSet<>();
        for (int i : nums) {
            if (set.contains(i)) {
                return i;
            }
            set.add(i);
        }
        return -1;
    }
}

sort()方法   

   Array  中的方法 对数组进行排序

class Solution {
    public int findRepeatNumber(int[] nums) {
Arrays.sort(nums);
        int i = nums[0];
        for (int j = 1; j < nums.length; j++) {
            if (nums[j] == i) {
                return nums[j];
            }
            i = nums[j];
        }
        return -1;
    }
}

 

  

 

标签:sort,return,offer,int,nums,sites,HashSet,add
From: https://www.cnblogs.com/woaixing711/p/16822288.html

相关文章

  • 剑指Offer-14-剪绳子/力扣-343-整数拆分
    对于一段绳子,第一刀下去可以将绳子分成i和n-i两段,其中i的取值范围为[1,n-1]dp[n]表示n可分成的最大乘积和,dp[n]=max(dp[n],max(i*n-i,i*f(n-i)))初始化:全部初始化为1i......
  • Codeforces Round #829 (Div. 2) E Wish I Knew How to Sort
    WishIKnewHowtoSort概率dp设计一个\(dp[i]\)表示还需要进行\(i\)次有效移动的概率何为有效移动?最后的数组是\(0\)在左边,\(1\)在右边因此只有把两个在错误......
  • 剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode)
    剑指Offer56-I.数组中数字出现的次数-力扣(LeetCode)一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复......
  • 剑指 Offer 48. 最长不含重复字符的子字符串 - 力扣(LeetCode)
    剑指Offer48.最长不含重复字符的子字符串-力扣(LeetCode)思路:最长子串要么包括最后一个字符,要么不包括最后一个字符。我们可以设长度为i的包含最右侧字符的最长的串......
  • 字节实习6个月后,我劝你至今0offer赶紧去实习
    首先摆出来实习证明镇楼,我可不是标题党,我是真的实习了六个月。适用人群假如你是一个已经有了多段实习经历,只是因为运气不好,那么大可不必把时间花在实习上,继续海投海面才......
  • PHP array_multisort 多维数组排序的理解
    array_multisort(array1,sortingorder,sortingtype,array2,array3...) 1.数组从前往后,依次排序;前一组数中值相同时,才考虑后一个数组中的值排序;2.任一数组排序变......
  • java基础HashSet 集合TreeSet集合
           ......
  • Shell细说sort排序
    sort是在Linux里非常常用的一个命令,管排序sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。使用方法:so......
  • List.sort 排序方法使用
     在数据库中取出的List<Map<Strng,Object>>现在根据Map里面的时间字段进行排序代码:list.sort(newComparator<Map<String,Object>>(){@Overridepublicin......
  • 《剑指offer》day17
    最小的k个数题目描述思路快速排序注意本题对返回结果的顺序性没有要求,可以根据基准点来提高效率当基准点==k,直接返回当基准点>k,往左递归否则往右递归代码实现c......