首页 > 其他分享 >day6 哈希表part01: 242.有效的字母异位词|349. 两个数组的交集|202. 快乐数|1. 两数之和

day6 哈希表part01: 242.有效的字母异位词|349. 两个数组的交集|202. 快乐数|1. 两数之和

时间:2024-08-20 17:42:15浏览次数:8  
标签:202 return day6 res ++ int set new 两数

242.有效的字母异位词 

class Solution {
    public boolean isAnagram(String s, String t) {
       int[] record = new int[26];
       //a = 97. so a - a = 0, b - a = 1. 直接使用减法,不用记acii码值。
       //遍历第一个string++, 遍历第二个string--.数组里的数字都是0,就是一样的。
       for(int i = 0; i < s.length(); i++){
        record[s.charAt(i) - 'a']++;
       } 
       for(int i = 0; i < t.length(); i++){
        record[t.charAt(i) - 'a']--;
       }
       for(int i : record){
        if(i != 0){
            return false;
        }
       }

       return true;
    }
}

349. 两个数组的交集

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        if(nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0){
            return new int[0];
        }
        //set 去重,遍历第一个存入,第二个只对比,有的话就放在一个新的set里边
        //把set里边的转换成数组
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> result = new HashSet<>();
        for(int i : nums1){
            set1.add(i);
        }
        for(int i : nums2){
            if(set1.contains(i)){
                result.add(i);
            }
        }
        int[] arr = new int[result.size()];
        int k = 0;
        for(int i : result){
            arr[k] = i;
            k++;
        }
        return arr;
    }
}

202. 快乐数

class Solution {
    public boolean isHappy(int n) {
        //放在set里,如果set里有了就是循环了,不是快乐数
        //set里有1就是快乐数,注意数学基本运算的写法
        Set<Integer> res = new HashSet<>();
        while (n != 1 && !res.contains(n)){
            res.add(n);
            n = square(n);
        }
        return n == 1;
    }
    public int square (int n){
        int sum = 0;
        while(n > 0){
            int temp = n % 10;
            sum += temp * temp;
            n = n/10;
        }
        return sum;
    }
}

 

1. 两数之和

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];

        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++){
            if(map.containsKey(target - nums[i])){
                res[0] = map.get(target - nums[i]);
                res[1] = i;
                break;
            }
            map.put(nums[i], i);
        }
        return res;
    }
}

 

标签:202,return,day6,res,++,int,set,new,两数
From: https://www.cnblogs.com/hewx/p/18369918

相关文章

  • Nuxt3【过渡】2024最新版 (含页面过渡、布局过渡、全局过渡、局部过渡、动态过渡、禁用
    全局布局过渡layoutTransitionnuxt.config.ts中exportdefaultdefineNuxtConfig({app:{layoutTransition:{name:'layout',mode:'out-in'}},})app.vue中需添加样式.layout-enter-active,.layout-leave-active{transition:all0.4s;......
  • 2024 Summer_Camp 做题总结 下
    CloseVertices思路很明显,这是一道点分治题目,但有两个限制条件,考虑将两个条件排序起来,双指针找第一个条件,树状数组维护第二个条件,但是同一个子树内不能重复统计,所以将答案减去每个子树内的答案。代码#include<iostream>#include<algorithm>#defineintlonglongusingnam......
  • 2024年华为OD目录,D卷&C卷,E卷即将更新!
    序言  本专栏收录的华为OD题目都会持续优化并且持续更新最新题目,一次购买,终生享受。2024年,华为OD机试已经启用了D卷,目前D卷和C卷的题目是一样的。我身边有很多同学通过本专栏已经成功上岸华为的OD员工,有同学成功转正为华为正式员工。根据内部消息,华为OD今年可能会使用E......
  • 【开源分享】2024好用的PHP在线客服系统源码 带搭建教程
    安装教程1.上传源码压缩包到网站目录并解压2.设置网站运行目录public3.设置伪静态,选择thinkphp4.创建数据库,导入数据库:public/service.sql5.修改.env里的数据库配置信息6.启动命令(根目录终端) phpthinkworker:gateway-d更详细的搭建文档需下载压缩包,安装教程.docx......
  • 【开源分享】2024好用的PHP工单管理系统 带搭建教程
    在日益复杂的企业运营环境中,工单管理成为企业提升运维效率、优化服务质量的关键环节。工单管理系统源码以其高效、稳定、灵活的特点,为企业提供了强大的工单管理解决方案。未来,我们将继续优化系统功能,提升用户体验,为企业创造更大的价值。同时,我们也期待更多企业加入我们的行列,共......
  • 国产海光CPU平台兼容性指南-基础软件分册-20231013(附各系统下载链接)
    目录声明一、操作系统 二、虚拟化和云2.1 虚拟化和云2.2虚拟机上的操作系统2.2.1 VMwarevSphere上的虚拟机操作系统2.2.2  KVM上的虚拟机操作系统2.2.3  WindowsHyper-V上的虚拟机操作系统2.2.4  VirtualBox上的虚拟机操作系统三、分布式存储 四、......
  • 《2024智慧超矫技术白皮书》
    在全球制造业转型升级的大潮中,金属板材矫平行业正在经历一场深刻的技术变革。作为这一领域的领军企业,玛哈特集团发布了《2024智慧超矫技术白皮书》,深入剖析当前行业所面临的挑战与机遇,展示智慧超矫技术在提升生产效率、降低成本和优化产品质量方面的巨大潜力。01行业变迁中的......
  • 玛哈特发布《2024智慧超矫技术白皮书》 引领金属板材矫平行业的智能化变革
    随着全球制造业对高精度和高效率的需求日益增长,金属板材矫平技术正经历着一场前所未有的变革。玛哈特集团顺应这一趋势,隆重发布了《2024智慧超矫技术白皮书》。该白皮书深入探讨了智慧超矫技术在金属板材矫平中的应用,展示了该技术如何为企业提供更高效、更精确的解决方案,从而帮......
  • CTS2022
    D1T1普罗霍洛夫卡考虑扫描线,那么问题就变成了区间\(+1\),区间历史异或和问题。我们先单独考虑一个数的情况,如果在\(j\)时刻,\(b_i\)增加了\(1\),发现对于后面的所有询问时刻\(j'\),如果\(j\)和\(j'\)的奇偶性相同,那么就会产生\(b_i\oplus(b_i+1)\)的贡献。而由于初始......
  • 免费【2024】基于SpringBoot 的干洗店预约洗衣系统设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......