leetcode1770.执行乘法运算的最大分数

贪心:每次都选择乘数最大的进行累加能到结果。但是在示例2中,第三步时mul是3,而可选择的num是-3和1,采用贪心会选择1但是正确的答案是选择-3,贪心并不能解决该问题

java 复制代码
class Solution {
    public int maximumScore(int[] nums, int[] multipliers) {
        int left=0,right=nums.length-1;
        int result=0;
        for(int mul:multipliers){
            int add=nums[left]*mul>=nums[right]*mul?nums[left++]*mul:nums[right--]*mul;
            result+=add;
        }
        return result;
    }
}

区间dp:

java 复制代码
class Solution {
    public int maximumScore(int[] nums, int[] multipliers) {
        int n = nums.length, m = multipliers.length;
        int[][] dp = new int[m + 1][m + 1];
        for (int[] ints : dp) {
            Arrays.fill(ints, Integer.MIN_VALUE);
        }
        dp[0][0] = 0;。。。
        for (int i = 1; i <= m; i++) {
            for (int j = 0; j < i; j++) {
                //1.选择右边的数字
                int endIndex = n - (i - j);
                dp[i][j] = Math.max(dp[i][j], dp[i - 1][j] + multipliers[i - 1] * nums[endIndex]);
                //2.选择左边的数字
                dp[i][j + 1] = Math.max(dp[i][j + 1], dp[i - 1][j] + multipliers[i - 1] * nums[j]);
            }
        }
        int maxScore = Integer.MIN_VALUE;
        for (int i = 0; i < m; i++) {
            maxScore = Math.max(maxScore, dp[m][i]);
        }
        return maxScore;
    }
}
相关推荐
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
小O的算法实验室1 天前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川1 天前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
‎ദ്ദിᵔ.˛.ᵔ₎1 天前
LIST 的相关知识
数据结构·list
一轮弯弯的明月1 天前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming6661 天前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川1 天前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java