首页 > 编程语言 >程序员面试金典---14

程序员面试金典---14

时间:2023-04-23 21:35:56浏览次数:31  
标签:return 14 填充 金典 image dfs --- sr sc

颜色填充

思路:使用深搜就可解决

  • 对坐标点(sr,sc)进行填充。
  • 然后在此处进行扩散。

代码:

function fill(image, sr, sc, newColor) {
    // 记录初始颜色值
    const oldColor = image[sr][sc];
    // 如果新颜色与初始颜色相同则无需填充
    if (newColor === oldColor) {
        return image;
    }
    
    // 定义递归函数,用于遍历周围区域
    function dfs(i, j) {
        // 如果坐标不合法或已经填充过,则返回
        if (i < 0 || i >= image.length || j < 0 || j >= image[0].length || image[i][j] !== oldColor) {
            return;
        }
        // 填充当前坐标点
        image[i][j] = newColor;
        // 递归四个方向
        dfs(i-1, j);
        dfs(i+1, j);
        dfs(i, j-1);
        dfs(i, j+1);
    }
    
    // 调用递归函数填充周围区域
    dfs(sr, sc);
    // 返回填充后的图像
    return image;
}

硬币

思路:

动态规划->完全背包-> 循环外放物品,循环内放背包

/**
 * @param {number} n
 * @return {number}
 */
var waysToChange = function(n) {
    const value = [25, 10, 5, 1]

    const dp = new Array(n + 1).fill(0)
    dp[0] = 1
	// 外循环物品
    for(let i = 0;i < 4; i++){
        // 内循环背包
        for(let j = value[i]; j <= n; j++){
            dp[j] = (dp[j] + dp[j - value[i]]) % 1000000007
        }
    }

    return dp[n]
};

标签:return,14,填充,金典,image,dfs,---,sr,sc
From: https://www.cnblogs.com/dgqp/p/17347809.html

相关文章

  • smartforms-采购订单报表
    *&---------------------------------------------------------------------**&ReportZ013*&*&---------------------------------------------------------------------**&*&*&------------------------------------------------------......
  • 【v4l2】Linux多媒体框架 - videobuf2详解
    框架分析框架可以分为两部分看:控制流+数据流,之前已经大概的描述了控制流,数据流部分就是videobuffer,V4l2buffer的管理是通过videobuf2来完成的,它充当于用户空间和驱动空间之间的中间层,并提供模块化的内存管理功能。上图大体包含了videobuf2的框架1.vb2_queue:核心的数据结构,......
  • SpringMVC-ssm案例-2023-04-23-2
    Controller其他功能packagecom.feijian.controller;importcom.feijian.pojo.Books;importcom.feijian.service.BookService;importorg.apache.ibatis.annotations.Param;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.b......
  • codeforces 414B B. Mashmokh and ACM(dp)
    题目链接:codeforces414B题目大意:定义一个序列,前一项能够整除后一项,给定这个序列中数的取值范围和序列的长度,问有多少种构造方法。题目分析:我们定义状态dp[i][j]为前i项已经确定且第i项为j的方案数。转移方程dp[i][j]=∑k|jdp[i−1][k]复杂度O(n⋅k)AC代码:#include<iostream>......
  • codeforces 225B B. Well-known Numbers(数论+二分+贪心+构造)
    题目链接:codeforces225B题目大意:定义f(k,n)为类似菲波那契数推导,只不过变为前k项的和,然后给出一个数s,利用k-菲波那契数构造出一个不重复的集合的元素和为s,集合的规模大于1题目分析:首先因为菲波那契数的增长速度快的吓人,所以给的数据范围109很快就能达到,我们得到O(n)的构造出所有的......
  • 2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 集合 或
    2022-04-23:给定你一个整数数组nums我们要将nums数组中的每个元素移动到A集合或者B集合中使得A集合和B集合不为空,并且average(A)==average(B)如果可以完成则返回true,否则返回false。注意:对于数组arr,average(arr)是arr的所有元素的和除以arr长度。输入......
  • 音视频八股文(4)--ffmpeg常见命令(3)
    17FFmpeg滤镜17.1filter的分类按照处理数据的类型,通常多媒体的filter分为:●音频filter●视频filter●字幕filter另一种按照处于编解码器的位置划分:●prefilters:usedbeforeencoding●intrafilters:usedwhileencoding(andarethusanintegralpartofavi......
  • C++第四章课后习题4-8
    定义一个dog类,包含的age,weight等属性,以及对这些属性的操作方法,实现并测试这个类。1#include<iostream>2usingnamespacestd;3classDog{4private:5intage,weight;6public:7voidsetdog(inta,intb)8{9......
  • 动手深度学习pytorch 5-7章
    深度学习计算1.块提供的基本功能:1.输入数据作为前向传播函数的参数2.通过前向传播函数生成输出3.计算其输出关于输入的梯度4.存储和访问前向传播计算所需的参数5.根据需要初始化模型参数2.Sequential类1.将块逐个追加到列表中的函数......
  • 深度学习--卷积神经网络基础
    深度学习--卷积神经网络基础1.卷积操作卷积操作简单来说就是矩阵对应位置相乘求和,这样不仅可以减少模型的参数数量,还可以关注到图像的局部相关特性。importtorchimporttorch.nnasnnimporttorch.nn.functionalasF#卷积操作(Input_channel:输入的通道数,kernel_channel......