随笔分类 - LeetCode—汇总
摘要:LeetCode 160 相交链表 题目描述: 编写一个程序,找到两个单链表相交的起始节点。 执行用时:2 ms, 在所有 Java 提交中击败了28.55%的用户 内存消耗:42.5 MB, 在所有 Java 提交中击败了71.52%的用户 构造成环 public class Solution {
阅读全文
摘要:LeetCode 529 扫雷游戏 题目描述: 让我们一起来玩扫雷游戏! 给定一个代表游戏板的二维字符矩阵。 'M' 代表一个未挖出的地雷,'E' 代表一个未挖出的空方块,'B' 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字('1' 到 '8')表示有多少地雷与这块已
阅读全文
摘要:LeetCode 94 二叉树中序遍历 **题目描述:**给定一个二叉树,返回它的中序遍历。 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:38.2 MB, 在所有 Java 提交中击败了14.07%的用户 递归 class Solution { public
阅读全文
摘要:LeetCode 141 环形链表 **问题描述:**给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。 如果pos是 -1,则在该链表中没有环。 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内
阅读全文
摘要:LeetCode 437 回文子串 **题目描述:**给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 执行用时:3 ms, 在所有 Java 提交中击败了91.69%的用户 内存消耗:37.6 MB, 在
阅读全文
摘要:剑指Offer 12 矩阵中的路径 给定一个字符矩阵和一个字符串,判断矩阵中是否存在一条路径能够匹配该字符串 执行用时:7 ms, 在所有 Java 提交中击败了44.58%的用户 内存消耗:41.8 MB, 在所有 Java 提交中击败了45.65%的用户 DFS+回溯 class Solutio
阅读全文
摘要:Leetcode 109 有序链表转换二叉搜索树 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 执行用时:1 ms, 在所有 Java 提交中击败了66.07%的用户 内存消耗:4
阅读全文
摘要:Leetcode 454 四数相加II 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤
阅读全文
摘要:LeetCode 733 图像渲染 给定一副代表图像的二维整型数组,其中每一个整数表示一个像素点的像素值。从某个起始点(sr, sc)出发,将与它在上、下、左、右四个方向上相邻的所有像素值相同的点(包括起始点)的都标记为一个新的像素值newColor。 DFS 执行用时:1 ms, 在所有 Java
阅读全文
摘要:Leetcode 11 旋转数组的最小数字 将一个排好序的数组中截断前一部分(长度不定)拼接到数组最后形成一个新的数组,求该数组中的最小值。 二分查找 class Solution { public int minArray(int[] numbers) { int low = 0; int hig
阅读全文
摘要:Leetcode 121 买卖股票的最佳时机 给定一个数组nums,其中每个数字num表示第i天的股票价格。要求同一天内最多只能进行一次交易(买入/卖出)且只能买入/卖出各一次,求能够获得的最大利润。 动态规划 思路: 第i天卖出能够获得的利润 = 第i天股票价格 - 前i天的最低价格(min_i)
阅读全文
摘要:LeetCode 20 有效的括号 给定一个代表包含一系列括号{}、[]、()的字符串,判断该字符串是否是一个合法的字符串(同类型左右括号匹配,且必须是连续的) 辅助栈 class Solution { public boolean isValid(String s) { if(s==null ||
阅读全文
摘要:LeetCode 119 杨辉三角II 原地动态规划 class Solution { //动态规划,由第k-1行递推第k行 public List<Integer> getRow(int rowIndex) { //第k行共有k个元素 int k = rowIndex+1; int[] kThRo
阅读全文
摘要:Leetcode 110 判断平衡二叉树 给定一颗二叉树,判断该树是否满足平衡条件: 对于任一节点,其左右子树高度相差不超过1 DFS 执行用时:1 ms, 在所有 Java 提交中击败了99.73%的用户 内存消耗:39.8 MB, 在所有 Java 提交中击败了70.51%的用户 class S
阅读全文
摘要:Leetcode 43 字符串相乘 给定两个代表无符号整数的字符串num1、num2,求两字符串表示的整数的乘积的字符串。 执行用时:3 ms, 在所有 Java 提交中击败了94.87%的用户 内存消耗:40 MB, 在所有 Java 提交中击败了39.71%的用户 方法一: 基于传统的竖版乘法运
阅读全文
摘要:#Leetcode 133 克隆图 给定一个无向图,要求给出该无向图的深克隆图(所谓深克隆是指克隆图中的每个节点都要是区别于旧图对应节点的新节点) 方法: 需要对给定的无向图进行遍历(DFS/BFS),遍历过程中对每个节点进行克隆并建立图(节点间串联) BFS class Solution { pu
阅读全文
摘要:Leetcode 130 被围绕的区域 给定一个二维字符数组,其中只包含两种字符:'O'、'X',要求将内部所有被'X'包围的'O'全部置为'X'。注意被包围是指'O'组成的区域周围都是'X',若区域周围存在至少一处边界(i==0 || j==0 || i==board.length-1 || j=
阅读全文
摘要:Leetcode 696 计数二进制子串 给定一个只包含0,1的字符串,假设一个连续子串中若包含相同数量的0,1且不交错分布则为一个满足要求的子串,求给定字符串中有多少个满足要求的子串。 方法: 交替对连续的0,1子串进行计数。当已经计数有last个连续的0时,若接下来又计数有count个连续的1,
阅读全文
摘要:Leetcode 116 填充每个节点的下一个右侧节点 将一个完美二叉树中每一个节点中的next指针指向同层右侧相邻节点,没有则指向null 方法1: 层序遍历(O(N)时间复杂度,O(N)空间复杂度) 执行用时:4 ms, 在所有 Java 提交中击败了20.62%的用户 内存消耗:40.2 MB
阅读全文
摘要:Leetcode 101 对称二叉树 给定一棵二叉树,判断该二叉树是否关于根节点镜像对称 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:37.7 MB, 在所有 Java 提交中击败了96.24%的用户 class Solution { public boole
阅读全文

浙公网安备 33010602011771号