![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
lilesien
这个作者很懒,什么都没留下…
展开
-
LeetCode91:解码方法
问题描述:一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> 1‘B’ -> 2…‘Z’ -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。给原创 2021-04-21 19:54:01 · 85 阅读 · 0 评论 -
LeetCode11:盛最多水的容器
问题描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例:其实这道题的最优解法是使用双指针,但是我第一次拿到这道题的时候并没有想到要使用使用双指针,只是想着找到每个点的最大存水量。接下来是我个人的做题思想,可以忽略。想要找到一个点的最大存水量,就要从最右边开始找,如果最右边的数大于当前的数,即就是原创 2021-04-17 21:01:29 · 55 阅读 · 0 评论 -
LeetCode打家劫舍问题!
LeetCode打家劫舍问题是一道经典的动态规划问题,接下来我将我解这道题的过程记录下来(实际上是参考了网上的思路),也算是我对这道题的笔记,希望对各位有所帮助。打家劫舍I问题描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。输入示例:输入:[1,2,原创 2021-04-15 20:04:41 · 101 阅读 · 0 评论 -
LeetCode783:二叉搜索树节点最小距离
今天的题是一道简单题,当我第一眼看上去会得无从下手,但是仔细观察过后,发现这道题的规律很明显,下面,让我们来看看吧。问题描述:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。示例:思路:题目中很明显的说了,这道题是一个二叉搜索树,既然要找最小差值,那么肯定是排序后的左右节点离这个数最近了,最小差值肯定在这两个之间。又由于这是一个二叉搜索树,左小右大,先左后中再右,这不就是中序遍历吗,左中右,既然是中序排序,那么定义三个变量,pre(前一个节点),cur(现在原创 2021-04-13 20:28:28 · 65 阅读 · 0 评论 -
LeetCode1641. 统计字典序元音字符串的数目
问题描述:给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。示例:输入:n = 2输出:15解释:仅由元音组成的 15 个字典序字符串为[“aa”,“ae”,“ai”,“ao”,“au”,“ee”,“ei”,“eo”,“eu”,“ii”,“io”,“iu”,“oo”,“ou”,“uu”]原创 2021-03-30 20:00:47 · 212 阅读 · 0 评论 -
LeetCode:547.省份数量
问题描述:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例:思路:由原创 2021-03-17 21:54:46 · 60 阅读 · 0 评论 -
LeetCode338. 比特位计数
题目描述:给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例:示例1:输入:输入: 2 输出: [0,1,1]示例2:输入: 5 输出: [0,1,1,2,1,2]思路:首先第一种方法可以进行循环,求出每一个数的二进制,然后在循环的过程中,如果i%2==1,则one++,最后让res[i] = one;但是这种方法时间复杂度高,效率低。经过对0->num这些数的观察,发现奇数的二进制中1的原创 2021-03-03 14:17:27 · 59 阅读 · 0 评论 -
LeetCode304. 二维区域和检索 - 矩阵不可变
题目:示例:代码思路:由于前一天做的是用前缀数组求一位数组的和,然后今天的是二维数组,所以第一步想到的是创建一个二维的前缀数组preSumclass NumMatrix { int[][] preSum; public NumMatrix(int[][] matrix) { int n = matrix.length; if(n > 0){ int m = matrix[0].length;原创 2021-03-02 22:20:57 · 96 阅读 · 0 评论 -
LeetCode303. 区域和检索 - 数组不可变
题目描述:给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], … , nums[j]))示例:思路:这道题可以使用前缀和的方法解决,通过使原创 2021-03-01 17:14:27 · 58 阅读 · 0 评论 -
LeetCode1052. 爱生气的书店老板
题目描述:今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一次。请你返回这一天营业下来,最多有多原创 2021-02-25 19:36:19 · 81 阅读 · 0 评论 -
Leetcode:1232缀点成线
LeetCode1232:缀点成线问题描述:在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。示例1:输入:输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]输出:true示例2:输入:coordinates原创 2021-01-27 13:59:14 · 114 阅读 · 0 评论