代码随想录算法训练营第6天 | 242 349 202 1

242

class Solution {
public:
    bool isAnagram(string s, string t) {
        int a[26] = {0};

        if (s.length()!= t.length()) {
            return false;
        }

        for (int i=0; i

因为只有26个字母,所以用一个数组来记录。

349

class Solution {
public:
    vector intersection(vector& nums1, vector& nums2) {
        unordered_set set1(nums1.begin(), nums1.end());
        unordered_set set2(nums2.begin(), nums2.end());

        vector res;
        for (int i:set1) {
            if (set2.find(i)!= set2.end()) {
                res.push_back(i);
            }
        }
        return res;
    }
};

总结:unordered_set要熟练使用,赋值,查找,插入。

202

class Solution {
public:
    int get_sum (int n) {
        int sum = 0;
        while (n>=10) {
            sum += pow(n%10, 2);
            n = n/10;
        }
        sum+=pow(n,2);
        return sum;
    }

    bool isHappy(int n) {
        int sum = get_sum(n);
        unordered_set set;

        while (true) {
            if (sum == 1) {
                return true;
            }
            if (set.find(sum) != set.end()) {
                return false;
            }
            set.insert(sum);
            sum = get_sum(sum);
        }
    }
};

sum重复表示不是快乐数,用一个unordered_set记录。

1

class Solution {
public:
    vector twoSum(vector& nums, int target) {
        map  m;
        vector res;
        for (int i=0; i

终于记得两数之和怎么做了。。。

你可能感兴趣的:(算法,leetcode,职场和发展)