当前位置: 首页 > news >正文

算法面试——深度优先搜索:全排列、组合总和、岛屿数量

一、全排列

publicList<List<Integer>>permute(int[]nums){List<List<Integer>>result=newArrayList<>();backtrack(nums,newboolean[nums.length],newArrayList<>(),result);returnresult;}privatevoidbacktrack(int[]nums,boolean[]used,List<Integer>path,List<List<Integer>>result){if(path.size()==nums.length){result.add(newArrayList<>(path));return;}for(inti=0;i<nums.length;i++){if(used[i])continue;used[i]=true;path.add(nums[i]);backtrack(nums,used,path,result);path.remove(path.size()-1);used[i]=false;}}

二、组合总和

publicList<List<Integer>>combinationSum(int[]nums,inttarget){List<List<Integer>>result=newArrayList<>();backtrack(nums,target,0,newArrayList<>(),result);returnresult;}privatevoidbacktrack(int[]nums,intremain,intstart,List<Integer>path,List<List<Integer>>result){if(remain==0){result.add(newArrayList<>(path));return;}if(remain<0)return;for(inti=start;i<nums.length;i++){path.add(nums[i]);backtrack(nums,remain-nums[i],i,path,result);path.remove(path.size()-1);}}

三、岛屿数量

publicintnumIslands(char[][]grid){intcount=0;for(inti=0;i<grid.length;i++)for(intj=0;j<grid[0].length;j++)if(grid[i][j]=='1'){dfs(grid,i,j);count++;}returncount;}privatevoiddfs(char[][]g,intr,intc){if(r<0||c<0||r>=g.length||c>=g[0].length||g[r][c]!='1')return;g[r][c]='0';dfs(g,r+1,c);dfs(g,r-1,c);dfs(g,r,c+1);dfs(g,r,c-1);}

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

http://www.jsqmd.com/news/1316993/

相关文章:

  • 舒尔补:矩阵降维与条件化的核心工具及其应用
  • Linux 权限管理——chmod、chown、sudo、ACL
  • 2026年8月山东省济南市移动融合宽带办理指南 - 找卡家园
  • H3c RC3000 开启 Telnet 及解除锁网
  • 2026 年当下,上海知名的异型雕塑平台推荐几家,小区角落突然冒出来的这玩意儿,竟让路过的人都停下了脚步?-宏观雕塑 - 行业推荐官【认证】
  • 页面置换算法深度解析:从缺页计算到系统性能调优实战
  • Autodock Vina 1.2.5 在Linux系统下的完整安装与配置指南
  • 2026年市面上耐用的101三角龙骨生产厂家联络方式 - 品牌排行榜
  • CTF杂项挑战实战:从盲文、音频频谱到图片隐写的全流程解析
  • 深入解析C++内存模型:从竞争条件到无锁编程实战
  • 2026年8月重庆市联通融合宽带怎么报装 - 找卡家园
  • NS-USBLoader终极指南:免费跨平台Switch游戏管理工具
  • 微服务边界别再凭感觉:用 DDD 识别业务边界
  • 2026年8月南昌市联通500M单宽带怎么报装 - 找卡家园
  • B端与C端产品核心差异:从用户角色到技术架构的深度解析
  • 2026年8月上海市奉贤区移动单宽带小白避坑指南 - 找卡家园
  • 2026年优选:上海房地产律师咨询怎么选才专业 - 装修教育财税推荐2026
  • 2026年江苏泰州粉末涂料供货商有哪些?你想知道的都在这里 - 品牌排行榜
  • 团队转型实战:赛马局机制如何提升协作效率
  • Mossland实战:零门槛AI声音克隆,为视频创作注入个性化配音
  • 【WorkBuddy专栏59】你的下一款办公智能体,选腾讯还是阿里——WorkBuddy/CodeBuddy vs 通义灵码 Qoder/QoderWork 全维度对比
  • 从零到一:PyQt-Fluent-Widgets如何重新定义Python桌面应用开发体验
  • 2026年8月重庆市联通1000M融合宽带怎么选 - 找卡家园
  • STM32智能厨房监测系统:多传感器融合与低功耗设计
  • 基于USD构建Audio2Face到MetaHuman的高效面部动画工作流
  • 2026年8月南昌市联通300M单宽带套餐避坑全攻略 - 找卡家园
  • 2026 年镇宁布依族苗族自治优秀的6063耐火涂层吹氧铝管生产厂家推荐,你还在为高温工况下的管材损耗头疼?这玩意儿帮钢厂省了不少成本。 - 行业严选官
  • 2026年8月上海市宝山区移动1000M单宽带避坑与办理指南 - 找卡家园
  • 2026 年现阶段康保有实力的保温棉公司找哪家,冬天屋里比室外还冷?原来你家漏热的地方藏着这玩意儿-龙飒岩棉保温棉 - 品质体验官
  • 三个 Agent 框架,我用同一个项目各实现了一遍