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;
    }
};
相关推荐
老鼠只爱大米3 分钟前
LeetCode经典算法面试题 #108:将有序数组转换为二叉搜索树(递归分治、迭代法等多种实现方案详解)
算法·leetcode·二叉树·二叉搜索树·平衡树·分治法
踩坑记录13 分钟前
leetcode hot100 104. 二叉树的最大深度 easy 递归dfs 层序遍历bfs
leetcode·深度优先·宽度优先
独自破碎E32 分钟前
【前缀和+哈希】LCR_011_连续数组
算法·哈希算法
一条大祥脚39 分钟前
26.1.26 扫描线+数论|因子反演+子序列计数|树套树优化最短路
数据结构·算法
m0_5613596742 分钟前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠1 小时前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_832402751 小时前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉1 小时前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji52611 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_763472461 小时前
C++网络编程(Boost.Asio)
开发语言·c++·算法