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

网站开发公司是互联网公司邹城市建设银行网站

网站开发公司是互联网公司,邹城市建设银行网站,网站优化可以做哪些优化,临清网站建设临清用二进制表示获得的钥匙,假设n钥匙个数 000000000代表没有钥匙,0000000001代表有idx为1的钥匙,0000000011代表有idx1,2的钥匙 (这方法巧妙又复杂.. 代码: class Solution {static int[][] dirs {{-1,0}…

用二进制表示获得的钥匙,假设n=钥匙个数

000000000代表没有钥匙,0000000001代表有idx为1的钥匙,0000000011代表有idx=1,2的钥匙

(这方法巧妙又复杂..

代码:

class Solution {static int[][] dirs = {{-1,0},{1,0},{0,-1},{0,1}};public int shortestPathAllKeys(String[] grid) {int m = grid.length, n = grid[0].length();int startx = 0,starty = 0;Map<Character, Integer> keyToIndex = new HashMap<>();//存钥匙的字母和对应的idx序号for(int i=0;i<grid.length;i++){for(int j=0;j<grid[i].length();j++){if(grid[i].charAt(j)=='@'){startx = i;starty = j;}else if(Character.isLowerCase(grid[i].charAt(j))){if(!keyToIndex.containsKey(grid[i].charAt(j))){int idx = keyToIndex.size();keyToIndex.put(grid[i].charAt(j), idx);}                    }}}Queue<int[]> queue = new ArrayDeque<int[]>();int[][][] dist = new int[m][n][1<<keyToIndex.size()];//第三维是2的size次方 列举钥匙的所有可能for(int i=0;i<m;i++){for(int j=0;j<n;j++){Arrays.fill(dist[i][j],-1);}} queue.offer(new int[]{startx,starty,0});dist[startx][starty][0] = 0;while(!queue.isEmpty()){int[] arr = queue.poll();int x = arr[0],y = arr[1],mask = arr[2];//mask是钥匙的排列for(int i=0;i<4;i++){int nx = x + dirs[i][0];int ny = y + dirs[i][1];if(nx>=0 && nx<m && ny>=0 && ny<n &&grid[nx].charAt(ny)!='#'){if(grid[nx].charAt(ny)=='.'||grid[nx].charAt(ny)=='@'){if(dist[nx][ny][mask] == -1){dist[nx][ny][mask] = dist[x][y][mask]+1;queue.offer(new int[]{nx,ny,mask});}}else if(Character.isLowerCase(grid[nx].charAt(ny))){int idx = keyToIndex.get(grid[nx].charAt(ny));if(dist[nx][ny][mask|(1<<idx)] == -1){dist[nx][ny][mask|(1<<idx)] = dist[x][y][mask]+1;if((mask|(1<<idx))==(1<<keyToIndex.size())-1){return dist[nx][ny][mask|(1<<idx)];}queue.offer(new int[]{nx,ny,mask|(1<<idx)});}}else{int idx = keyToIndex.get(Character.toLowerCase(grid[nx].charAt(ny)));if((mask&(1<<idx))!=0&&dist[nx][ny][mask]==-1){dist[nx][ny][mask] = dist[x][y][mask]+1;queue.offer(new int[]{nx,ny,mask});}}}}}  return -1;     }
}

http://www.yayakq.cn/news/394321/

相关文章:

  • 2010年4月江苏省03340网站建设与管理答案运营推广方案模板
  • 西部数码网站管理助手 v3.0做网站的一般尺寸
  • 珠海网站开发软件wordpress图片p标签
  • 什么是网站的功能模块交互设计大学世界排名
  • 网站索引量是什么温州seo推广外包
  • 开个人网站如何赚钱湖州做网站公司哪家好
  • 江苏城乡建设职业学院官方网站引流渠道有哪些平台
  • dede电影网站模版徐州市建设工程招标网
  • 室内设计有哪些网站龙岗做网站公司
  • 网站建设专业性福州网站模板建站
  • 网站建设需要哪些功能网站设计自己申请
  • wordpress 搭建网站上海模板网站
  • 鲁山网站建设兼职品牌建设的作用
  • php做的网站模版wordpress后台改密码
  • 不用域名推广网站wordpress 分页404
  • 重庆潼南网站建设哪家公司做门户网站
  • 哪里做百度网站涟源网站seo
  • 哈尔滨房地产网站建设什么设计网站好
  • 怎么做网站可以注册的排名推广网站
  • 绍兴 网站建设 电话百度seo点击
  • 济宁亿峰科技做网站一年多少费用杭州建设网杭州造价平台
  • 阿里云服务器做盗版视频网站自贡普通网站建设费用
  • 外贸网站建设加推广中文com域名注册
  • 大型网站开发企业wordpress關閉評論
  • 天津网站推广宣传网站建设需要岗位
  • 温州开发网站公司网站怎样做百度推广计划
  • 苏州做网站的公司哪家好四川省住房与建设厅网站首页
  • 做图网站有哪些东西网站前端建设需要学会什么
  • 上海网站建设免网站如何做长尾词排名
  • 农家乐网站 建设yy大杂烩