408算法题leetcode--第10天

643. 子数组最大平均数 I

cpp 复制代码
class Solution {
public:
    double findMaxAverage(vector<int>& nums, int k) {
        double ret = 0, temp = 0;
        size_t size = nums.size();
        for(int i = 0; i < k; i++){
            temp += nums[i];
        }
        ret = temp;
        // 进,出
        for(size_t i = k; i < size; i++){
            temp = temp + nums[i] - nums[i - k];
            ret = max(temp, ret);
        }
        return ret / k;
    }
};

567. 字符串的排列

cpp 复制代码
class Solution {
public:
    bool checkInclusion(string s1, string s2) {
        // 滑动窗口:大小为s1.size()
        // 相等:两个字符串的字符种类和次数都相同
        int s1_size = s1.size(), s2_size = s2.size();
        if(s1_size > s2_size){
            return false;
        }
        vector<int>hash_s1(26), hash_s2(26);
        for(int i = 0; i < s1_size; i++){
            hash_s1[s1[i] - 'a']++;
            hash_s2[s2[i] - 'a']++;
        }
        if(hash_s1 == hash_s2){  // O(1)
            return true;
        }
        // 滑动
        for(int i = s1_size; i < s2_size; i++){
            hash_s2[s2[i] - 'a']++;
            hash_s2[s2[i - s1_size] - 'a']--;
            if(hash_s1 == hash_s2){
                return true;
            }
        }
        return false;
    }
};
相关推荐
学地理的小胖砸39 分钟前
【高分系列卫星简介】
开发语言·数码相机·算法·遥感·地理信息
何事驚慌44 分钟前
2024/9/19、20 数学20题
考研
__AtYou__1 小时前
Golang | Leetcode Golang题解之第417题太平洋大西洋水流问题
leetcode·golang·题解
yanyanwenmeng1 小时前
matlab基础
开发语言·算法·matlab
##晴天小猪1 小时前
ByteTrack多目标跟踪流程图
人工智能·算法·目标检测·机器学习·目标跟踪
Ddddddd_1582 小时前
C++ | Leetcode C++题解之第421题数组中两个数的最大异或值
c++·leetcode·题解
ly-how2 小时前
leetcode练习 二叉树的层序遍历
算法·leetcode
疑惑的杰瑞2 小时前
[数据结构]算法复杂度详解
c语言·数据结构·算法
大油头儿2 小时前
排序算法-选择排序
数据结构·算法·排序算法
搞点夜点心2 小时前
算法课习题汇总(2)
算法