leetcode第119场双周赛 - 2023 - 12 - 9
比赛地址 :
https://leetcode.cn/contest/biweekly-contest-119/
t1 :
直接哈希表 加 暴力 统计就行了
class Solution {
public:vector<int> findIntersectionValues(vector<int>& nums1, vector<int>& nums2) {unordered_map<int,int> mp1,mp2;int n = nums1.size() , m = nums2.size();for(int& x : nums1) mp1[x]++;for(int& x : nums2) mp2[x]++;int a = 0 ,b = 0 ;for(int i=0;i<n;i++){if(mp2.find(nums1[i])!=mp2.end()){a++;}}for(int j = 0;j<m;j++){if(mp1.find(nums2[j])!=mp1.end()){b++;}}vector<int> ans;ans.push_back(a);ans.push_back(b);return ans;}
};
t2
直接模拟即可
class Solution {
public:bool pd(char a, char b){if(a==b) return true;else if(a==b-1 || a==b+1) return true;else return false;}int removeAlmostEqualCharacters(string w) {// 直接模拟即可int n = w.size();int ans = 0;for(int i=0;i<n;i++){int j = i+1;while(j<n && pd(w[j-1],w[j])) j++;int len = j - i ;ans += len / 2;i = j - 1 ;}return ans;}
};
t3
直接滑动窗口来记录每个数的频次,维护一个滑动窗口满足题目条件;
class Solution {
public:int maxSubarrayLength(vector<int>& nums, int k) {int n = nums.size();int l = 0 , r = 0 ;int ans = 0 ;unordered_map<int,int> mp;while(r < n){mp[nums[r]]++;while(mp[nums[r]]>k){mp[nums[l++]]--;}ans = max(ans,r-l+1);r ++;}return ans;}
};