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

vps做电影网站/seo工作职位

vps做电影网站,seo工作职位,公司是做网站建设的怎么开票,wordpress视频教程百度云1. BFS & DFS 作为算法题型里,这个是必须要会的 GitHub算法链接 2. 套路总结 DFS & BFS 套路总结 相同之处,对二维数组进行两层for循环遍历DFS特点: (a) 判断当前是否越界 (b) 看值是否遍历过,没有遍历过的记忆化标记 func dfs(_ grid: inout [[Charac…

1. BFS & DFS

  • 作为算法题型里,这个是必须要会的

GitHub算法链接

2. 套路总结

  • DFS & BFS 套路总结
  1. 相同之处,对二维数组进行两层for循环遍历
  2. DFS特点:
    (a) 判断当前是否越界
    (b) 看值是否遍历过,没有遍历过的记忆化标记
    func dfs(_ grid: inout [[Character]],_ row: Int, _ column: Int) {let maxRow = grid.countlet maxColumn = grid[0].countif row < 0 || row >= maxRow || column < 0 || column >= maxColumn || grid[row][column] != "1" {return}// 来到这里,原来的值就是1,标记为2grid[row][column] = "2"for i in 0..<dir.count {let newRow = row + dir[i][0]let newColumn = column + dir[i][1]dfs(&grid, newRow, newColumn)}}
  1. BFS特点: (用队列来存放索引)
    (a) 每次BFS递归中,需要创建一个队列
    (b) 队列中存放需要存放的是下标数组[x, y] ;
    © 判断当前x, y是否符合没有越界, 判断 当前下标值,是否是没有遍历过的,如果符合条件就放入队列
    (d) 并且把当前下标对应元素重新赋值,进行记忆化标记
    (e) 上下左右四个方向进行遍历
    func bfs(_ grid: inout [[Character]], _ row: Int, _ column: Int) {var queue = [[Int]]()if row >= 0 && row < grid.count && column >= 0 && column < grid[0].count && grid[row][column] == "1" {grid[row][column] = "2"queue.append([row, column])}while !queue.isEmpty {let first = queue.removeFirst() // 移除首个元素let i = first[0], j = first[1]for dir in dirs {let newRow = i + dir[0]let newColumn = j + dir[1]bfs(&grid, newRow, newColumn)}}}

3. 完整代码

  • DFS
class DFS {let dir = [[-1,0],[1,0],[0,-1],[0,1]]func numIslands(_ grid: [[Character]]) -> Int {var cnt = 0var temp = gridfor i in 0..<temp.count {for j in 0..<temp[0].count {if temp[i][j] == "1" {dfs(&temp, i, j)cnt += 1}}}return cnt}func dfs(_ grid: inout [[Character]],_ row: Int, _ column: Int) {let maxRow = grid.countlet maxColumn = grid[0].countif row < 0 || row >= maxRow || column < 0 || column >= maxColumn || grid[row][column] != "1" {return}// 来到这里,原来的值就是1,标记为2grid[row][column] = "2"for i in 0..<dir.count {let newRow = row + dir[i][0]let newColumn = column + dir[i][1]dfs(&grid, newRow, newColumn)}}}
  • BFS
class BFS {var dirs = [[-1,0],[1,0],[0,-1],[0,1]]func numIslands(_ grid: [[Character]]) -> Int {var cnt = 0var temp = gridfor i in 0..<temp.count {for j in 0..<temp[0].count {if temp[i][j] == "1" {cnt += 1bfs(&temp, i, j)}}}return cnt}func bfs(_ grid: inout [[Character]], _ row: Int, _ column: Int) {var queue = [[Int]]()if row >= 0 && row < grid.count && column >= 0 && column < grid[0].count && grid[row][column] == "1" {grid[row][column] = "2"queue.append([row, column])}while !queue.isEmpty {let first = queue.removeFirst()let i = first[0], j = first[1]for dir in dirs {let newRow = i + dir[0]let newColumn = j + dir[1]bfs(&grid, newRow, newColumn)}}}
}
http://www.jmfq.cn/news/5087935.html

相关文章:

  • 在网站后台设置wap模板目录/品牌咨询
  • 网站建设实例大制作/网络营销策划书包括哪些内容
  • 泉州模板自助建站/做网站需要多少钱 都包括什么
  • 总算把网站设计好了/河南企业网站推广
  • 阜宁网站制作哪家好/合肥关键词排名技巧
  • 网页网站设计公司排名/网站建设网站设计
  • 苏州网站建设自助建站收费/网络防御中心
  • 新增病例最新数据今天/优化方案电子版
  • 做球迷网站/免费正能量erp软件下载
  • 网站设计包括什么/app推广员好做吗
  • 建设网站什么软件比较好/seo网页的基础知识
  • 天津市建设公司网站/2022年seo还值得做吗
  • 网站建设费用是什么科目/网红推广一般怎么收费
  • 建站属于什么行业/seo数据优化教程
  • 网站制作报价大约/网站功能
  • 网站运营技术性高吗/seo整站优化更能准确获得客户
  • 在农村做相亲网站怎么样/百度账号人工申诉
  • 哈尔滨的网站建设公司/三台网站seo
  • 北京泵网站建设/网站移动端优化工具
  • 深圳直销制度网站制作/百度文库首页
  • 网站建设 大公司小公司/学企业管理培训班
  • 和城乡建设厅官方网站/青岛百度推广seo价格
  • 泾阳做网站/厦门seo顾问
  • 官方网站怎么做/百度知道一下首页
  • 绍兴网站设计公司/郑州网站制作公司哪家好
  • 光明网站建设/关键词优化排名怎么做
  • 网站空间虚拟主机续费/百度收录申请
  • django做购物网站/软文网站名称
  • 做网站的经费/企业网站设计制作
  • 上海做家纺的公司网站/百度推广和优化哪个好