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

宁波咨询网站设计淄博哪里有做网站的

宁波咨询网站设计,淄博哪里有做网站的,佛山哪里做网站,大连网站制作网页牛客网【面试必刷TOP101】~ 06 递归/回溯 文章目录 牛客网【面试必刷TOP101】~ 06 递归/回溯[toc]BM55 没有重复项数字的全排列(★★)BM56 有重复项数字的全排列(★★)BM57 岛屿数量(★★)BM58 字符串的排列(★★)BM59 N皇后问题(★★★)BM60 括号生成(★★)BM61 矩阵最长递增路…牛客网【面试必刷TOP101】~ 06 递归/回溯 文章目录 牛客网【面试必刷TOP101】~ 06 递归/回溯[toc]BM55 没有重复项数字的全排列(★★)BM56 有重复项数字的全排列(★★)BM57 岛屿数量(★★)BM58 字符串的排列(★★)BM59 N皇后问题(★★★)BM60 括号生成(★★)BM61 矩阵最长递增路径(★★) BM55 没有重复项数字的全排列(★★) 回溯移动元素至前 public class Solution {ArrayListArrayListInteger res;public ArrayListArrayListInteger permute (int[] nums) {res new ArrayList();if (nums null || nums.length 0) return res;ArrayListInteger lists new ArrayList();// Arrays.sort(nums);for (int num : nums) lists.add(num);backtrack(lists, 0, lists.size());return res;} private void backtrack(ArrayListInteger lists, int begin, int end) {if (begin end) {res.add(new ArrayList(lists));return;}for (int i begin; i end; i) {int val lists.remove(i);lists.add(begin, val);backtrack(lists, begin 1, end);val lists.remove(begin);lists.add(i, val);}} }BM56 有重复项数字的全排列(★★) 排序 回溯set去重 public class Solution {ArrayListArrayListInteger res;public ArrayListArrayListInteger permuteUnique (int[] nums) {res new ArrayList();if (nums null || nums.length 0) return res;ArrayListInteger lists new ArrayList();Arrays.sort(nums);for (int num : nums) lists.add(num);backtrack(lists, 0, lists.size());return res;}private void backtrack(ArrayListInteger lists, int begin, int end) {if (begin end) {res.add(new ArrayList(lists));return;}SetInteger set new HashSet();for (int i begin; i end; i) {if (set.contains(lists.get(i))) continue;set.add(lists.get(i));int val lists.remove(i);lists.add(begin, val);backtrack(lists, begin 1, end);lists.remove(begin);lists.add(i, val);}}}BM57 岛屿数量(★★) 方法一回溯120ms public class Solution {private static int[] dirs {-1, 0, 1, 0, -1}; public int solve (char[][] grid) {if (grid null || grid.length 0 || grid[0].length 0) return 0;int count 0;int r grid.length, c grid[0].length;for (int i 0; i r; i) {for (int j 0; j c; j) {if (grid[i][j] 0) continue;dfs(grid, i, j, r, c);count;}}return count;}private void dfs(char[][] grid, int i, int j, int r, int c) {if (i 0 || j 0 || i r || j c || grid[i][j] 0) {return;}grid[i][j] 0;for (int d 0; d 4; d) {int x i dirs[d], y j dirs[d 1];dfs(grid, x, y, r, c);}}}更直观的定义 public class Solution {public int solve (char[][] grid) {int count 0;for (int i 0; i grid.length; i) {for (int j 0; j grid[0].length; j) {if (grid[i][j] 0) continue;sinkLand(grid, i, j);count;}}return count;}private void sinkLand(char[][] grid, int i, int j) {if (i 0 || j 0 || i grid.length || j grid[0].length || grid[i][j] 0) {return;}grid[i][j] 0;sinkLand(grid, i - 1, j);sinkLand(grid, i 1, j);sinkLand(grid, i, j - 1);sinkLand(grid, i, j 1);}}BM58 字符串的排列(★★) 同BM56有重复字符的全排列 public class Solution {ArrayListString res;public ArrayListString Permutation (String str) {res new ArrayList();if (str null || str.equals()) return res;char[] cs str.toCharArray();Arrays.sort(cs);backtrack(cs, 0, cs.length);return res;}private void backtrack(char[] cs, int begin, int end) {if (begin end) {res.add(new String(cs));return;}SetCharacter set new HashSet();for (int i begin; i end; i) {if (set.contains(cs[i])) continue;set.add(cs[i]);swap(cs, begin, i);backtrack(cs, begin 1, end);swap(cs, begin, i);}}private void swap(char[] cs, int i, int j) {char c cs[i];cs[i] cs[j];cs[j] c;} }BM59 N皇后问题(★★★) public class Solution {private int count;private int[] x;public int Nqueen (int n) {count 0;x new int[n];Arrays.fill(x, -1);backtrack(n);return count;}private void backtrack(int n) {int k 0;while (k 0) {x[k];while (x[k] n isClash(k)) x[k];if (x[k] n k n - 1) count;if (x[k] n k n - 1) {k;} else {x[k--] -1;}}}private boolean isClash(int k) {for (int i 0; i k; i) {if (x[i] x[k] || Math.abs(i - k) Math.abs(x[i] - x[k])) {return true;}}return false;}}BM60 括号生成(★★) 递归 public class Solution {public ArrayListString res;public ArrayListString generateParenthesis (int n) {res new ArrayList();dfs(new String(), n, n);return res;}private void dfs(String s, int le, int ri) {if (le ri || le 0 || ri 0) return;if (le 0 ri 0) {res.add(s);return;}dfs(s (, le - 1, ri);dfs(s ), le, ri - 1);} }BM61 矩阵最长递增路径(★★) dfs记忆化搜索 public class Solution {private static final int[] dirs {-1, 0, 1, 0, -1};private int[][] ms;private int R, C;public int solve (int[][] matrix) {if (matrix null || matrix.length 0 || matrix[0].length 0) {return 0;}R matrix.length;C matrix[0].length;ms new int[R][C];int res 0;for (int i 0; i R; i) {for (int j 0; j C; j) {res Math.max(res, dfs(matrix, i, j));} }return res;}private int dfs(int[][] matrix, int i, int j) {if (ms[i][j] ! 0) return ms[i][j];ms[i][j];for (int k 0; k 4; k) {int x i dirs[k], y j dirs[k 1];if (x 0 || y 0 || x R || y C || matrix[i][j] matrix[x][y]) {continue;}ms[i][j] Math.max(ms[i][j], dfs(matrix, x, y) 1);}return ms[i][j];}}
http://www.dnsts.com.cn/news/105877.html

相关文章:

  • 新余市建设局网站做外包网站
  • 浦东区建设工程监督网站十大免费无代码开发软件
  • 好的网站模板电子商务范围
  • 深圳seo整站优化承接英文网站一般用什么字体
  • wordpress阿里云虚拟主机安装教程seo门户网站建设
  • 局域网做网站在家建设一个网站需要什么
  • php电影播放网站开发网站降权多久恢复
  • 北京卓天下网站建设公司公司邮箱名称
  • 分销系统网站建设ui网站模板
  • 网站的seo怎么做邯郸哪家公司做企业网站比较专业
  • 安丘网站建设报价高端建设网站公司哪家好
  • 自主建站网站云南建设厅网站监理员培训
  • 外贸饰品网站wordpress mip 改造
  • 网站开展营销的思路和方法wordpress主题 路径
  • 莱芜市莱城区城乡建设局网站深圳优定软件网站建设
  • 中国建设银行的网站wordpress 赞 插件
  • 南宁电子商务网站建设大中型网站开发价格
  • 中国网站建设公司 排名wordpress 发表评论
  • h5网站开发费用南昌网站建设搜q.479185700
  • 建设路小学家校互动平台网站中国产品设计网
  • 金色财经网站开发广西网站制作
  • 网站如何做中英文效果西安网站建设公司云网
  • 外贸网站设计公司价格沈阳网站建设 网络服务
  • 门户网站建设方案中信息公开免费网站下载app软件免费
  • 建设网站目的及功能定位是什么智能建站和成品网站的区别
  • 网站建设捌金手指花总十三权威的赣州网站建设
  • hexo做网站档案馆建设网站
  • 石家庄搭建网站白沟网站开发
  • 如何建立新的企业网站wordpress postmeta表
  • 网站大全2021江门移动网站建设公司