代码随想录算法训练营第五天
代码随想录算法训练营第五天|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
代码随想录算法训练 文章被收录于专栏
代码随想录算法训练