visited

走迷宫问题总结

天大地大妈咪最大 提交于 2020-11-27 04:52:29
1、判断一个迷宫是否有出口 这个题目是我自己编的,leetcode上并没有这样的题目。为了锻炼自己的DFS,这个题目应该还是比较简单的,用深搜就可以完成,和之前做的max area of island有异曲同工之妙。 poll出迷宫问题: 、 如图所示的迷宫,0代表可以走,1代表有墙。要求从左上角到右下角是否有一条路可以走完。如何判断这个迷宫内是否有路。代码如下: 1 boolean res = false ; 2 int [] dest; 3 int [][] grid; 4 boolean [][] visited; 5 public boolean can( int [][] grid, int [] start, int [] dest){ 6 boolean [][] visited = new boolean [grid.length][grid[0 ].length]; 7 this .dest = dest; 8 this .grid = grid; 9 this .visited = visited; 10 helper(start[0],start[1 ]); 11 return res; 12 } 13 14 private void helper( int i, int j) { 15 if ( i == dest[0] && j == dest[1] )

[LeetCode] 207. Course Schedule 课程安排

£可爱£侵袭症+ 提交于 2020-11-26 05:23:04
There are a total of n courses you have to take, labeled from 0 to n - 1 . Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1] Given the total number of courses and a list of prerequisite pairs, is it possible for you to finish all courses? For example: 2, [[1,0]] There are a total of 2 courses to take. To take course 1 you should have finished course 0. So it is possible. 2, [[1,0],[0,1]] There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should

[LeetCode] 301. Remove Invalid Parentheses 移除非法括号

巧了我就是萌 提交于 2020-11-25 04:27:32
Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results. Note: The input string may contain letters other than the parentheses ( and ) . Example 1: Input: "()())()" Output: ["()()()", "(())()"] Example 2: Input: "(a)())()" Output: ["(a)()()", "(a())()"] Example 3: Input: ")(" Output: [""] 给一个字符串,里面含有'(', ')'和字母,其中的小括号可能不配对,移除不配对的括号,使得括号匹配,返回所有可能的解。 判断括号是否合法,可以用栈,这也是栈的一个典型应用。也可用一个count计数器,遇到左括号++,右括号--,一旦count小于0,就说明不合法。比较推荐count方式,空间复杂度较低。 解法1: BFS: 枚举去除的点,当找到后停止BFS树的扩展(因为要去除最少括号,所以即使有其他的结果,也一定在同一层) 解法2: DFS: 统计左右括号能删的个数,进行DFS。

第二次作业

三世轮回 提交于 2020-11-24 13:33:21
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type="text/css"> div{ width:200px; height: 300px; background-image:url("picture/xiaogou.png" ); background-repeat: no-repeat; background-size:200px 300px; /* 设置div大小200*300 设置背景图片 地址 picture/xiaogou.z 不让他平铺 设置背景图片图片的大小和div大小相同*/ } li{ font-weight:bolder; list-style:none; } /* li字体加粗 去掉前面的点 */ a { color:black; line-height: 35px; display: block; } /* 设置超链接字为黑色,行高35px 去掉下划线 */ li:hover{color:blue;} /* li鼠标碰到的时候变为蓝色 */ a:hover{color:blue;} /* 超链接鼠标碰到的时候变为蓝色 */ a:link,a:visited{ text-decoration:none; /*超链接无下划线*/ } span{color:red;

FrontEnd笔记 -- CSS

只谈情不闲聊 提交于 2020-11-17 03:32:34
文章目录 CSS基础 简介 样式引用方式 样式选择器 字体 背景 伪类选择器 属性选择器 关系选择器 伪元素 小练习 CSS浮动布局&盒模型 浮动 盒子模型 CSS基础 简介 CSS:层叠样式表,用来美化网页的,做到结构(html)和样式(css)分离。 基本语法 selector{ property : value; } selector:选择器通常是需要改变样式的HTML元素 样式引用方式 行间(内联)样式:直接在标签上书写样式 <!-- 在线运行网站:https://www.runoob.com/runcode--> <!DOCTYPE html> < html > < head > < meta charset = " utf-8 " > < title > SimWor </ title > </ head > < body > < div > 行间样式测试 </ div > < div style =" color : olive ; width : 100px ; border : 1px solid blue ; " > 行间样式测试 </ div > </ body > </ html > 内部样式表:放置在头部中 <!-- 在线运行网站:https://www.runoob.com/runcode--> <!DOCTYPE html> < html > <

css笔记

試著忘記壹切 提交于 2020-11-12 08:31:00
注释: /* */ 1、css和html的结合方式 (1)用(每个)html标签上的style属性结合 (2)使用html的<style>标签 (3)在style标签里使用语句 @import url(css文件路径);(某些浏览器不支持) (4)使用头标签link引入外部css文件 2、css的选择器(* 代表所有) (1)标签选择器 使用标签名作为选择器名称: 标签名{css属性} (2)class选择器 每个html标签都有个class属性(可以有多个class属性,用空格隔开) - [标签].class名{css属性}   (3)id选择器 每个html标签都有个属性id - [标签]#id名{css属性}   (4)属性选择器 选择具有指定属性值的标签 - 选择器[id='abc']{css属性}   优先级: style属性 > id选择器 > class选择器 > 标签选择器 3、css的扩展选择器 (1)关联选择器 指定嵌套标签里面的样式(标签1中的标签2) - 标签1 标签2{css属性}   (2)组合选择器 把不同标签设置成相同的样式 - 标签1,标签2{css属性}}   (3)伪元素选择器 css里面提供了一些定义好的样式,可以定义元素在不同条件下的样式 超链接(顺序不能变) 状态:原始状态(:link),鼠标放上去(:hover),点击还没释放(

[leetcode-753-Open the Lock]

此生再无相见时 提交于 2020-11-10 07:14:01
You have a lock in front of you with 4 circular wheels. Each wheel has 10 slots: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' . The wheels can rotate freely and wrap around: for example we can turn '9' to be '0' , or '0' to be '9' . Each move consists of turning one wheel one slot. The lock initially starts at '0000' , a string representing the state of the 4 wheels. You are given a list of deadends dead ends, meaning if the lock displays any of these codes, the wheels of the lock will stop turning and you will be unable to open it. Given a target representing the value of the wheels that

LeetCode(79): 单词搜索

守給你的承諾、 提交于 2020-11-02 18:43:43
Medium! 题目描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] 给定 word = "ABCCED", 返回 true. 给定 word = "SEE", 返回 true. 给定 word = "ABCB", 返回 false. 解题思路: 这道题是 典型的深度优先遍历DFS 的应用,原二维数组就像是一个迷宫,可以上下左右四个方向行走,我们以二维数组中每一个数都作为起点和给定字符串做匹配,我们还需要一个和原数组等大小的visited数组,是bool型的,用来记录当前位置是否已经被访问过,因为题目要求一个cell只能被访问一次。如果二维数组board的当前字符和目标字符串word对应的字符相等,则对其上下左右四个邻字符分别调用DFS的递归函数,只要有一个返回true,那么就表示可以找到对应的字符串,否则就不能找到。 C++解法一: 1 class Solution { 2 public : 3 bool exist(vector<vector< char >>& board,

java如何使用mongodb shell命令

 ̄綄美尐妖づ 提交于 2020-10-30 20:41:42
最近工作使用了mongodb数据库,一开始使用spring 中的 MongoTemplate api 来查询,发现很不直观,比较费劲,就想能否直接调用shell 命令。网上查了下,完整的例子很少,有的例子可能是版本不同不能使用。于是,参考网上资料,经过1小时的尝试,得出可行方法,直接上代码吧。 @Autowired MongoConverter mongoConverter; @Test public void mgTest(){ String a = "[ { \"$match\" : { \"content.userEvent\" : \"visited\"}} , { \"$group\" : { \"_id\" : \"$header.visit_bid\"}} , { \"$group\" : { \"_id\" : \"$_id.header.visit_bid\" , \"count\" : { \"$sum\" : 1}}}]"; JSONArray ja = JSON.parseArray(a); List<Bson> bsonList = new ArrayList<>(); for(int i=0;i<ja.size();i++){ bsonList.add(BsonDocument.parse(ja.get(i).toString())); } List

剑指offer 13——机器人的运动范围

你说的曾经没有我的故事 提交于 2020-10-28 15:58:34
这道题本质还是搜索,因此可以使用深度优先搜索和广度优先搜索进行解决。 原题 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? 示例 1: 输入:m = 2, n = 3, k = 1 输出:3 示例 2: 输入:m = 3, n = 1, k = 0 输出:1 提示: 1 <= n,m <= 100 0 <= k <= 20 原题url:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 解题 深度优先搜索 从一个点出发,遍历完所有点,为了保证不会重复遍历,因此我们可以借助一个二维矩阵记录已经遍历过的点。而用深度优先搜索遍历的话,一般都是使用 递归 的。 需要注意的是,虽然机器人可以上下左右移动,但因为是从 [0, 0] 开始的,所以可以想象成根节点往子节点或兄弟节点的遍历方式,深度优先搜索就是先遍历子节点,子节点遍历完成后,在遍历兄弟节点。