随笔分类 - 力扣
摘要:表1: Person + + +| 列名 | 类型 |+ + +| PersonId | int || FirstName | varchar || LastName | varchar |+ + +PersonId 是上表主键表2: Address + + +| 列名 | 类型 |+ + +| A
阅读全文
摘要:/*给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 解题思路 标签:字符串遍历,进制转换 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘
阅读全文
摘要:/*给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 摩尔投票法思路 候选人(cand_num)初始化为nums[0],票数count初始化为1。 当遇到与cand_num相同的数,
阅读全文
摘要:/*给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 模拟 这是一道从 11 开始的的 2626 进制转换题。 对于一般性的进制转换题目,只需要不断地对 columnNumbercolumnNumber 进行 % 运算取得最后一位,然后对 columnNumber
阅读全文
摘要:/*给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 一图胜千言,看图你就明白了 空间复杂度 O(1)O(1) 时间复杂度为 O(n)O(n) 这里使用图解的方式,解释比
阅读全文
摘要:/*设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部
阅读全文
摘要:/*给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 二叉树的遍历 前序: 根 -> 左 -> 右 中序: 左 -> 根 -> 右 后序: 左 -> 右 -> 根 /** * Definition for a binary tree node. * public class Tree
阅读全文
摘要:/*给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 二叉树的遍历 前序: 根 -> 左 -> 右 中序: 左 -> 根 -> 右 后序: 左 -> 右 -> 根 /** * Definition for a binary tree node. * public class TreeNo
阅读全文
摘要:/*给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链
阅读全文
摘要:/*给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路 标签:位运算 本题根据题意,线性时间复杂度 O(n)O(n),很容易想到使用 Hash 映射来进行计算,遍历一次后结束得到结果,但是在空间复杂度上会达到 O(n)O(n),需要使用较多的
阅读全文
摘要:/*给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路 标签:位运算 本题根据题意,线性时间复杂度 O(n)O(n),很容易想到使用 Hash 映射来进行计算,遍历一次后结束得到结果,但是在空间复杂度上会达到 O(n)O(n),需要使用较多的
阅读全文
摘要:/*给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 */ class Solution { public boolean isPalindrome(String s) { int n = s.length(); in
阅读全文
摘要:/*给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回
阅读全文
摘要:/*给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 class Solution { public List<Integer> getRow(int rowIndex) { int[] dp = new int[
阅读全文
摘要:/*给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路: 把杨辉三角转化为一维数组就是: [1] [1,1] [1,2,1] [1,3,3,1] ....... 返回结果为全集,把状态方程设置成二维数组即可。 状态
阅读全文
摘要:/*给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 解题思路: 从根节点开始,
阅读全文
摘要:/*给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 解题思路 标签:DFS 终止条件、返回值和递归过程: 当前节点 root 为空时,说明此处树的高度为 0,0 也是最小值 当前节点 root 的左子树和右子树都为空时
阅读全文
摘要:/*给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 从底至顶(提前阻断) 此方法为本题的最优解法,但“从底至顶”的思路不易第一时间想到。 思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某
阅读全文
摘要:/*给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 分析:BST的中序遍历是升序的,因此本题等同于根据中序遍历的序列恢复二叉搜索树。因此我们可以以升序序列
阅读全文
摘要:/*给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 解题思路 标签:DFS 找出终止条件:当前节点为空 找出返回值:节点为空时说明高度为 0,所以返回 0;节点不为空时则分别求左右子树的高度的最大值,同时加1表示当前
阅读全文

浙公网安备 33010602011771号