Day9力扣打卡

打卡记录

掷骰子等于目标和的方法数(动态规划)

链接

用 f[i][j] 表示投了 i 次投骰子得到点数总和,从而得到状态转移方程 f[i][j]=f[i−1][j]+f[i−1][j−1]+⋯+f[i−1][j−min(k−1,j)] 。

cpp 复制代码
class Solution {
public:
    int numRollsToTarget(int n, int k, int target) {
        const int MOD = 1e9 + 7;
        vector<int> f(target + 1, 0);
        f[0] = 1;
        for (int i = 1; i <= n; ++i) {
            for (int j = target; j >= 0; --j) {
                f[j] = 0;
                for (int x = 1; x <= k && x <= j; ++x)
                    f[j] = (f[j] + f[j - x]) % MOD;
            }
        }
        return f[target];
    }
};

长度最小的子数组(双指针 滑动窗口)

链接

满足条件就排出前面的元素,保证满足条件的窗口,然后求解每回窗口坐标的最小值。

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int n = nums.size(), sum = 0, ans = 0x3f3f3f3f;
        for (int i = 0, j = 0; i < n; ++i) {
            sum += nums[i];
            while (j < n && sum >= target) {
                ans = min(ans, i - j + 1);
                sum -= nums[j++];
            }
        }
        return ans == 0x3f3f3f3f ? 0 : ans;
    }
};
相关推荐
头发还没掉光光1 小时前
Linux网络之IP协议
linux·运维·网络·c++·tcp/ip
狐572 小时前
2026-01-22-LeetCode刷题笔记-3507-移除最小数对使数组有序I
笔记·leetcode
充值修改昵称2 小时前
数据结构基础:B树磁盘IO优化的数据结构艺术
数据结构·b树·python·算法
燃于AC之乐2 小时前
深入解剖STL Vector:从底层原理到核心接口的灵活运用
开发语言·c++·迭代器·stl·vector·源码分析·底层原理
程序员-King.8 小时前
day158—回溯—全排列(LeetCode-46)
算法·leetcode·深度优先·回溯·递归
优雅的潮叭8 小时前
c++ 学习笔记之 chrono库
c++·笔记·学习
星火开发设计9 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
月挽清风9 小时前
代码随想录第七天:
数据结构·c++·算法
小O的算法实验室9 小时前
2026年AEI SCI1区TOP,基于改进 IRRT*-D* 算法的森林火灾救援场景下直升机轨迹规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
小郭团队10 小时前
2_1_七段式SVPWM (经典算法)算法理论与 MATLAB 实现详解
嵌入式硬件·算法·硬件架构·arm·dsp开发