存在重复元素

题目详情:

  1. 给定一个整数数组,判断是否存在重复元素。
  2. 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false

示例

  1. #示例1
  2. 输入: [1,2,3,1]
  3. 输出: true
  4. #示例2
  5. 输入: [1,2,3,4]
  6. 输出: false
  7. #示例3
  8. 输入: [1,1,1,3,3,4,3,2,4,2]
  9. 输出: true

解题思路

  1. 首先进行排序
  2. 取值判断第一个和第二个是否相等,如果相等则返回为true即可

具体代码

  1. Arrays.sort(nums);
  2. for(int i = 0; i < nums.length-1;i++){
  3. if(nums[i]==nums[i+1]){
  4. return true;
  5. }
  6. }
  7. return false;

有效的字母异位词

题目详情

  1. 给定两个字符串 s t ,编写一个函数来判断 t 是否是 s 的字母异位词。
  2. 注意:若 s t 中每个字符出现的次数都相同,则称 s t 互为字母异位词

示例

  1. //示例1
  2. 输入: s = "anagram", t = "nagaram"
  3. 输出: true
  4. // 示例2
  5. 输入: s = "rat", t = "car"
  6. 输出: false
  7. // 提示
  8. 1 <= s.length, t.length <= 5 * 104
  9. s t 仅包含小写字母

解题思路

  1. 先判断2个长度是否相等,如果相等,才有可能是字母为互异词

    1. if(s().length == t().length){
    2. }
  2. 把字符串转换成数组

    1. char [] s1 = s.toCharArray();
    2. char [] t1 = t.toCharArray();
  3. 然后对2个数组进行排序,然后判断2个数组是否完全相等就可以确认是否为字母的异互词了;

    1. Arrays.sort(s1);
    2. Arrays.sort(t1);
    3. return Arrays.equals(s1,t1);

具体的代码

  1. if(s().length == t().length){
  2. char [] s1 = s.toCharArray();
  3. char [] t1 = t.toCharArray();
  4. Arrays.sort(s1);
  5. Arrays.sort(t1);
  6. return Arrays.equals(s1,t1);
  7. }
  8. return false;

丢失的数字

题目详情

  1. 给定一个包含 [0, n] n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

示例

  1. /示例1
  2. 输入:nums = [3,0,1]
  3. 输出:2
  4. 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums
  5. /示例2
  6. 输入:nums = [0,1]
  7. 输出:2
  8. 解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。
  9. /示例3
  10. 输入:nums = [9,6,4,2,3,5,7,0,1]
  11. 输出:8
  12. 解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。
  13. /示例4
  14. 输入:nums = [0]
  15. 输出:1
  16. 解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。
  17. /提示
  18. n == nums.length
  19. 1 <= n <= 104
  20. 0 <= nums[i] <= n
  21. nums 中的所有数字都 独一无二

解题思路

  1. 排序,需要把示例里面的内容先排序看规律

    1. Arrays.sort(nums);
  2. 数组的长度是n == nums.length,排序完之后就可以根据示例看出,数组的角标如果和数组不一致的话,就是丢失的代码;

    1. for(int i = 0;i< nums.length;i++){
    2. if(nums[i] !=i){
    3. return i;
    4. }
    5. }

    具体代码

    1. Arrays.sort(nums);
    2. for(int i = 0;i< nums.length;i++){
    3. if(nums[i] !=i){
    4. return i;
    5. }
    6. }