代码随想录算法训练营第五天

代码随想录算法训练营第五天|242.有效的字母异位词、349.两个数组的交集 、202. 快乐数、1. 两数之和

242.有效的字母异位词

第一天开始做哈希表

以往的方法肯定是暴力破解做

第一道哈希的题目不是很熟练

反正就是将信息散列到一个数组中,然后进行查询操作

class Solution {
public:
    bool isAnagram(string s, string t) {
        int record[26] = {0};
        for(int i = 0;i < s.size();i++){
            record[s[i] - 'a'] ++;
        }
        for(int j = 0;j < t.size();j++){
            record[t[j] - 'a'] --;
        }
        for(int k = 0;k <26;k++){
            if(record[k] != 0){
                return false;
            }
        }
        return true;
    }
};

349.两个数组的交集

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> result_set;
        unordered_set<int> nums_set(nums1.begin() , nums1.end());
        for(int num :nums2){
            if(nums_set.find(num) != nums_set.end()){
                result_set.insert(num);
            }
        }
        return vector<int>(result_set.begin() , result_set.end());
    }
};

一不小心刷了两遍,和下面的快乐数差不多。

202.快乐数

class Solution {
public:
    int jisuan(int n) {
        int sum = 0 ;
        while(n){
            sum += (n%10)*(n%10);
            n/=10;
        }
        return sum;
    }
    bool isHappy(int n) {
        unordered_set <int> set;
        while(1){
            int sum =jisuan(n);
            if(sum == 1){
                return true;
            }
            if(set.find(sum) != set.end()){
                return false;
            }else{
                set.insert(sum);
            }
            n =sum;
        }
    }
};

1. 两数之和

只会暴力做,不会map

代码随想录算法训练 文章被收录于专栏

代码随想录算法训练

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务