程序员面试金典---14
颜色填充
思路:使用深搜就可解决
- 对坐标点
(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] };
分类:
力扣-程序员面试金典题目整理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!