LeetCode 242.有效的字母异位词
题目链接: LeetCode242
思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数)
class Solution { public: bool isAnagram(string s, string t) { if(s.length() != t.length()) return false; sort(s.begin(),s.end()); sort(t.begin(),t.end()); return s==t; } };
数组哈希映射:
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 i=0;i<t.size();i++){ record[t[i]-'a']--; } for(int i=0;i<26;i++){ if(record[i]!=0){ return false; } } return true; } };
LeetCode 349. 两个数组的交集
题目链接: LeetCode349
思路: 主要掌握unordered_set,将nums1放入去重的集合中,循环nums2在nums1中找nums1中存在的元素,找到了就放在result_set集合中
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){ //发现nums2的元素,在nums_set里又出现过 if(nums_set.find(num)!=nums_set.end()){ result_set.insert(num); } } return vector<int>(result_set.begin(),result_set.end()); } };
LeetCode 1. 两数之和
题目链接: LeetCode1
思路:
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { std::unordered_map<int,int> map; for(int i=0;i<nums.size();i++){ auto iter = map.find(target-nums[i]); if(iter!=map.end()){ return {iter->second,i}; } map.insert(pair<int,int>(nums[i],i)); } return {}; } };
标签:set,nums,int,随想录,349,vector,result,nums1,两数 From: https://www.cnblogs.com/ygmzj/p/17874437.html