2025-09-15 学习日记

发布于 2025-09-15 12:00 355 字 2 min read 手写 每个字都是我自己敲的。

2025-12-24 学习日记2025-12-17 学习日记2025-12-14 学习日记2025-12-09 学习日记2025-12-08 学习日记2025-12-07 学习日记2025-12-06 学习日记2025-12-05 学习日记2025-12-04 学习日记2025-12-03 学习日记2025-12-02 学习日记2025-12-01 学习日记2025-11-30 学习日记2025-11-29 学习日记2025-11-28 学习日记2025-11-27 学习日记2025-11-26 学习日记2025-11-25 学习日记2025-11-24 学习日记2025-11-23 学习日记2025-11-22 学习日记2025-11-21 学习日记2025-11-20 学习日记2025-11-19 学习日记2025-11-18 学习日记2025-11-17 学习日记2025-11-16 学习日记2025-11-15 学习日记2025-11-14 学习日记2025-11-13 学习日记2025-11-12 学习日记2025-11-11 学习日记2025-11-10 学习日记2025-11-09 学习日记2025-11-08 学习日记2025-11-07 学习日记2025-11-06 学习日记2025-11-05 学习日记2025-11-04 学习日记2025-11-03 学习日记2025-11-02 学习日记2025-11-01 学习日记2025-10-31 学习日记2025-10-30 学习日记2025-10-29 学习日记2025-10-28 学习日记2025-10-27 学习日记2025-10-26 学习日记2025-10-25 学习日记2025-10-24 学习日记2025-10-23 学习日记2025-10-22 学习日记2025-10-21 学习日记2025-10-20 学习日记2025-10-19 学习日记2025-10-18 学习日记2025-10-17 学习日记2025-10-16 学习日记2025-10-15 学习日记2025-10-14 学习日记2025-10-13 学习日记2025-10-11 学习日记2025-10-10 学习日记2025-10-09 学习日记2025-10-03 学习日记2025-10-02 学习日记2025-10-01 学习日记2025-09-30 学习日记2025-09-29 学习日记2025-09-28 学习日记2025-09-27 学习日记2025-09-26 学习日记2025-09-25 学习日记2025-09-24 学习日记2025-09-23 学习日记2025-09-22 学习日记2025-09-21 学习日记2025-09-20 学习日记2025-09-18 学习日记2025-09-17 学习日记2025-09-16 学习日记2025-09-15 学习日记2025-09-14 学习日记2025-09-13 学习日记2025-09-12 学习日记2025-09-11 学习日记2025-09-10 学习日记2025-09-09 学习日记2025-09-08 学习日记2025-09-04 学习日记2025-09-03 学习日记2025-09-02 学习日记2025-09-01 学习日记2025-08-31 学习日记2025-08-29 学习日记2025-08-28 学习日记2025-08-27 学习日记2025-08-26 学习日记2025-08-25 学习日记2025-08-24 周记2025-08-23 学习日记2025-08-22 学习日记2025-08-21 学习日记2025-08-20 学习日记2025-08-19 学习日记2025-08-18 学习日记2025-08-17 周记2025-08-16 学习日记2025-08-15 学习日记2025-08-14 学习日记2025-08-13 学习日记2025-08-12 学习日记2025-08-11 学习日记
今日学习记录 1. 执行操作可获得的最大总奖励 Ileetcode.3180 关键词: 问题分析: 从数组中选一些数,要求只能加上比原来累加值更大的值,求最大累加值 核心思路 还是背包问题,选还是不选,直接写很简单的 dfs,一般会超时 可以使用记忆化,记录哪些选项选择过

今日学习记录

1. 执行操作可获得的最大总奖励 Ileetcode.3180

关键词:背包 问题分析:

  1. 从数组中选一些数,要求只能加上比原来累加值更大的值,求最大累加值

核心思路

  1. 还是背包问题,选还是不选,直接写很简单的 dfs,一般会超时
int maxTotalReward(vector<int>& rewardValues) {
        //老规矩,先排序
        //要大,肯定要先选小的再选大的
        ranges::sort(rewardValues);
        int n = rewardValues.size();
        auto dfs = [&](this auto&&dfs,int i,int sum)->int{
            if(i<0||i>=n) return sum;
            //可选也可以不选
            if(rewardValues[i]>sum){
                return max(dfs(i+1,sum),dfs(i+1,sum+rewardValues[i]));
            }else return dfs(i+1,sum);
        };
        return dfs(0,0);
    }
  1. 可以使用记忆化,记录哪些选项选择过
int maxTotalReward(vector<int>& rewardValues) {

        //老规矩,先排序

        //要大,肯定要先选小的再选大的

        ranges::sort(rewardValues);

        int n = rewardValues.size();

        int mx = rewardValues[n-1];

        vector arr(n+1,vector<int>(mx+1,-1));

        auto dfs = [&](this auto&&dfs,int i,int sum)->int{

            if(sum>=mx||i>=n) return sum;

            int& mt = arr[i][sum];

            if(mt!=-1) return mt;

            //可选也可以不选

            if(rewardValues[i]>sum){

                mt =  dfs(i+1,sum+rewardValues[i]);

            }

            return mt = max(mt,dfs(i+1,sum));

        };

        return dfs(0,0);

    }

学到的点:

  1. 背包

今日收获

  1. 待加强

  2. 明日计划:

    • [ ]
    • [ ]

执笔 手写

随机文章

加载中...