摘要:
很经典的一道题,提供三种解法:DFS,BFS,并查集 1.DFS遍历每个点,如果等于1,将其设置为0,递归遍历其周围的四个点(在矩阵范围内)。计算触发DFS结点的数目。 2.BFS遍历每个点,如果等于1,将其设置为0,用while循环加队列遍历其周围的点(在矩阵范围内),直到队列为空。计算触发BFS 阅读全文
摘要:
解法一:正反各遍历一次。正向遍历只要保证( 加 *的数量大于)。反向遍历保证* 加 )的数量大于(。 JAVA class Solution { public boolean checkValidString(String s) { int left = 0; int right = 0; for( 阅读全文
摘要:
1.URI:HTTP协议使用URI定位互联网上的资源。 2.HTTP/1.1支持的方法:GET获取资源,POST传输实体主体,PUT传输文件,HEAD获得报文首部,DELETE删除文件,OPTIONS询问支持的方法,TRACE追踪路径,CONNECT要求用隧道协议连接代理 3.Cookie会根据从服 阅读全文
摘要:
1.OSI参考模型:物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 2.电路交换与分组交换 3.单播 广播 多播 任播 4.网桥 路由器 4~7层交换机 网关 5.TCP/IP分层模型:硬件(物理层) 网络接口层(数据链路层) 互联网层(网络层) 传输层 应用层(会话层以上的分层) 6. 阅读全文
摘要:
用两个数组分别记录左边和右边得乘积 L[i] = L[i-1]*nums[i-1]; R[i] = R[i+1]*nums[i+1]; nums[i] = L[i]*R[i]; JAVA class Solution { public int[] productExceptSelf(int[] nu 阅读全文
摘要:
本题提供两种解法: 第一种:用left 和 right 分别统计向左或向右移动的步数。关键在于要对字符串长度求余数 第二种:把移动看作是一个环状,只需要用left记录即可,向左移动left加,向右移动left-right。 Math.floorMod与%的区别 floorMod(4, 3) == 1 阅读全文
摘要:
本题的关键是用一个计数器count=0,遇到0减1,遇到1加1.这让我联想到了()匹配。也可以用计数器的方式判断 如果用暴力法超时,这时用了map{count,index}这样的数据结构。这里又和twoSum这道题相似。 其实这道题的解法 是集成了 括号匹配 和 两数之和 的方法。 JAVA cla 阅读全文
摘要:
本题的难点在于每次要找到数组中前两个最大的值。提供三种解法: 1.每次对数组进行排序找到前两个最大的值 2.利用堆结构找到最大的两个值 PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder()) 3. 阅读全文
摘要:
三种解法: 第一种:用了Stack<int[x,y]>这样的数据结构,其中y为栈中当前最小值 第二种:用了两个栈为stack<Integer> 和minstack<Integer>,其中minstack存储stack的当前最小值 第三种:用了Stack<Integer>和minStack<int [ 阅读全文
摘要:
104.求二叉树的最大深度 class Solution: def maxDepth(self, root: TreeNode) -> int: if root == None: return 0 else: leftdepth = self.maxDepth(root.left) rightdep 阅读全文