首页 > 其他分享 >代码随想录-DAY⑤-哈希表——leetcode 242 | 349 | 202

代码随想录-DAY⑤-哈希表——leetcode 242 | 349 | 202

时间:2024-07-08 23:27:18浏览次数:22  
标签:vector set return 复杂度 随想录 nums1 202 哈希 349

242

思路

先遍历字符串1,
记录每个字符的个数,
然后遍历字符串2,
挨个减去字符个数,
出现小于零的个数说明字符总数不重合。

时间复杂度:O(n)
空间复杂度:O(1)

代码
class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.length() != t.length()){
            return false;
        }
        vector<int> table(26, 0);

        for(auto c : s){
            table[c-'a']++;
        }
        for(auto c : t){
            table[c-'a']--;
            if(table[c-'a']<0){
                return false;
            }
        }
        return true;
    }
};

349

思路

先把数组1存到哈希表1中,
然后遍历数组2,
将能在哈希表1中找到的存到哈希表2中,
这样可以去掉重复的,
最后把哈希表2转为数组。

时间复杂度: O(n + m)
空间复杂度: O(n)

代码
class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> nums1_set(nums1.begin(), nums1.end());
        unordered_set<int> result_set;
        for(auto i : nums2){
            if(nums1_set.count(i)){
                result_set.insert(i);
            }
        }
        return vector<int>(result_set.begin(), result_set.end());
    }
};

202

思路

申请一个哈希表,
每计算一次快乐数,
都将结果存到哈希表中,
如果发现重复结果说明不是快乐数,
如果发现结果值为1说明是快乐数。

时间复杂度: O(logn)
空间复杂度: O(logn)

代码
class Solution {
public:
    int getnext(int n) {
        int num=0;
        while(n>0){
            num += (n%10)*(n%10);
            n /= 10;
        }
        return num;
    }

    bool isHappy(int n) {
        unordered_set<int> nums;
        while(n!=1){
            if(nums.count(n)){
                return false;
            }
            nums.insert(n);
            n = getnext(n);
        }
        return true;
    }
};

标签:vector,set,return,复杂度,随想录,nums1,202,哈希,349
From: https://blog.csdn.net/weixin_43160551/article/details/140280469

相关文章

  • 2024码蹄杯职高省赛第三场初赛全题解
    其实吧对于码蹄杯省赛的话,第三场是一千五百多人,百分之25的获奖率,然后前四百名左右就可以获奖,根据排行来看大概是六题左右,其中大概就四题要点脑子,其余的基本上属于语法题,也就是13题中如果语法没问题的话,九题是很轻松的,因为都是青铜白银题,语法没问题的话就OK的,然后就是一个P序列,......
  • 代码随想录(day1)二分法
    if语句的基本语法if要判断的条件:条件成立的时候,要做的事举例:ifnums[middle]<target:left=middle+1while语句的基本语法:while判断条件(condition):'''执行语句(statements)'''举例:whileleft<=right:middle=left+(right-left)//2题目:代码:class......
  • 代码随想录刷题day 6 | 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交
    242.有效的字母异位词383.赎金信classSolution{//这里只给出了242的代码,赎金信的解法可以说是基本相同的publicbooleanisAnagram(Strings,Stringt){int[]map=newint[26];for(charc:s.toCharArray())map[c-'a']++;for(char......
  • 题解(2024.7.8贪心)
    1.Teleporters(HardVersion)题意:有n+2个位置:0~n+1,给定n个数\(a_1\)~\(a_n\),有以下操作:向左/右移动一格,代价为1。传送回0位置或者n+1位置,记你当前的位置为i,则代价为\(a_i\)。每个位置只能发动一次传送。求最大传送次数思路:因为每次传送都会回到0/n+1号点,所以,到......
  • 2024已过半,还没试过在vue3中使用ioc容器吗?
    Vue3已经非常强大和灵活了,为什么还要引入IOC容器呢?IOC容器离不开Class,那么我们就从Class谈起Class的应用场景一提起Class,大家一定会想到这是Vue官方不再推荐的代码范式。其实,更确切的说,Vue官方是不推荐基于Class来定义Vue组件。如图所示:社区确实有几款基于Clas......
  • 2024年7个最佳WooCommerce商城案例
    WooCommerce毫无疑问是最受欢迎的电子商务平台。截至2021年,它的下载量已超过8230万次,运行的网站超过380万个。 就市场份额而言,WooCommerce高达40.9%—比紧随其后的竞争对手Shopify高出近15%。 这些数字说明了WooCommerce的规模有多大,以及无数电子商务品......
  • YOLOv8改进 | 注意力机制| 引入多尺度分支来增强特征表征的注意力机制 【CVPR2021】
    秋招面试专栏推荐:深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • 9个用于测试自动化的最佳AI测试工具(2024)
    选择一款优质的基于生成式AI人工智能的测试工具能够确保测试过程的准确性和效率,从而加速整个软件测试周期。相反,设计不佳的测试工具可能无法发现错误,并可能存在安全问题。它们可能产生误报或漏报,误导开发与测试团队,导致潜在的软件故障。  1、testRigortestRigor是一个基......
  • 2023首届服务韧性工程(SRE)论坛分会场:数据中心运维的新发展
    2023年12月15日,2023首届服务韧性工程(SRE)论坛在杭州成功举行,大会邀请了来自通信、金融、医疗、制造行业等100余位SRE领域专业人士参加,本次大会特别设立了主题为“数据中心运维的新发展”的分会场,由广通优云和SRE专委会联合出品。邀请来自数据中心领域不同行业的产学研用的专家,就......
  • 代码随想录算法训练营第26天 | 455.分发饼干 53. 最大子序和
    455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j]>=g[i],我们可以将这个饼干j分配给孩子i,这个孩子......