讨论/题目交流/🏆 第 190 场力扣周赛/
🏆 第 190 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 检查单词是否为句中其他单词的前缀
4 分 - 定长子串中元音的最大数目
5 分 - 二叉树中的伪回文路径
6 分 - 两个子序列的最大点积

这周是水题娱乐局,给个四题Rust代码吧:

impl Solution {
    pub fn max_dot_product(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
        let n = nums1.len();
        let m = nums2.len();
        if n == 1 && m == 1 {
            return nums1[0]*nums2[0];
        }
        let mut f = vec![vec![std::i32::MIN; m+1]; n+1];
        for i in 0..=m {
            f[0][i] = 0;
        }
        for i in 0..=n {
            f[i][0] = 0;
        }
        let mut ans = std::i32::MIN;
        for i in 1..=n {
            for j in 1..=m {
                f[i][j] = f[i-1][j-1] + nums1[i-1]*nums2[j-1];
                ans = ans.max(f[i][j]); // 答案必须至少乘一次,所以ans在这里更新
                f[i][j] = f[i][j].max(f[i-1][j]);
                f[i][j] = f[i][j].max(f[i][j-1]);
            }
        }
        ans
    }
}
1
展开全部 31 讨论