2021
30 posts-
每日LeetCode 150
150 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 示例 1:
-
每日LeetCode 149
149 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。...
-
每日LeetCode 148
148 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。
-
每日LeetCode 147
147 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
-
每日LeetCode 146
146 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径?
-
每日LeetCode 143-145
143 给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。 如果不能形成任何面积不为零的三角形,返回 0。 示例 1: 144 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,...
-
每日LeetCode 140-142
140 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 141 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。...
-
每日LeetCode 137-139
137 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 138 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 139 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。 示例 1:
-
每日LeetCode 133-136
133 给定一个字符串 s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。 重复出现的子串要计算它们出现的次数。 示例 1 : 134 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。...
-
每日LeetCode 130-132
130 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。 更正式地说,root.val = min(root.left.val, root.right.val) 总成立。...
-
每日LeetCode 126-129
126 给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例: 127 在二维平面上,有一个机器人从原点 (0,...
-
SpringAOP
> Aspect Oriented Programing 面向切面编程 代理模式 为某一个对象(委托类)准备一个代理(代理类),用来控制对这个对象的访问。 两者有一个共同的父类或父接口。 代理类会对请求做预处理、过滤,将请求分配给指定对象。 1. 代理类和委托类有相似的行为。 2. 代理类增强委托类的行为。...
-
每日LeetCode 122-125
122 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回...
-
每日LeetCode 118-121
118 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 119 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例: 120 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集...
-
Spring IOC
> Inversion of Control 控制反转 配置文件 1. 引入配置文件的方法的参数可以多个。 2. 在一个总的配置文件中用 进行引用。 IOC 注入 set 方法注入 P 标签注入 在 Spring 2.5 之后,为了 set 注入的方便,引入了这个方法。 对于其他类对象 property 中的...
-
每日LeetCode 114-117
114 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。 示例 1: 输入: ["Shogun",...
-
每日LeetCode 110-113
110 给定一个 N 叉树,返回其节点值的 后序遍历 。 N 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 递归 迭代 111 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums...
-
每日LeetCode 107-109
107 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。 给定一个数字 n,找出可形成完整阶梯行的总行数。 n 是一个非负整数,并且在32位有符号整型的范围内。 示例 1: 108 给定一个长度为 n 的 非空 整数数组,每次操作将会使 n - 1 个元素增加...
-
每日LeetCode 103-106
103 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], 104...
-
每日LeetCode 99-102
99 给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 1. 'A' : Absent,缺勤 2. 'L' : Late,迟到 3. 'P' : Present,到场 如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。...
-
每日LeetCode 94-98
94 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 95 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N...
-
每日LeetCode 88-93
88 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: 给你 n ,请计算 F(n) 。 89 给定一个单词,你需要判断单词的大写使用是否正确。 我们定义,在以下情况时,单词的大写用法是正确的: 1....
-
每日LeetCode 83-87
83 给定一个二进制数组, 计算其中最大连续 1 的个数。 示例: 84 给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例 1: 85 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 提示: 1. num1 和num2 的长度都小于 5100 2....
-
每日LeetCode 79-82
79 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t\ 由字符串 s\ 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 80 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: 81 给你两个 没有重复元素 的数组...
-
每日LeetCode 76-78
76 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。 你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或...
-
每日LeetCode 71-75
71 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 72...
-
每日LeetCode 67-70
67 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 68 计算给定二叉树的所有左叶子之和。 示例: 69 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如...
-
每日LeetCode 65-66
65 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 66 给定一个头结点为 head...
-
每日LeetCode 61-64
61 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? 示例 1: 62 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。...
-
每日LeetCode 58-60
58 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 59 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version...