- 博客(34)
- 收藏
- 关注
原创 84. 柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例 1:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10示例 2:输入: heights = [2,4]输出: 4提示:1 <= heights.length <=1050 <= heights[i] <= 104来源:力扣(LeetCode)链接:https://l
2022-02-27 19:23:05 224 2
原创 UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 63绝对有效
最近在pycharm搭建django项目,一切都准备完成。但是在运行python manage.py runserver时发现总是会报这个错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 63网上搜索了很多方法,改文件格式,重装都没用。最后发现是电脑本身的设置问题,打开设置–>时间和语言–>区域–>其它日期语言区域设置–>更改区域日期时间或数字格式–>管理–>更改系统区域设
2022-02-11 13:43:23 1248 3
原创 LeetCode剑指 Offer II 024. 反转链表
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/UHnkqh给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000思路
2021-10-08 15:51:34 136
原创 LeetCode实现 Trie (前缀树)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-trie-prefix-treeTrie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String
2021-10-06 20:07:48 102
原创 LeetCode设计哈希映射
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/design-hashmap不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现 MyHashMap 类:MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。int get(int key) 返回特定的 key
2021-10-06 11:15:12 105
原创 LeetCode设计哈希集合
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/design-hashset不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现 MyHashSet 类:void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。示例:输入:["MyHashS
2021-10-06 10:21:16 134
原创 从前序与中序遍历序列构造二叉树
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示
2021-10-06 09:24:14 124
原创 LeetCode网格中的最短路径
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shortest-path-in-a-grid-with-obstacles-elimination给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。
2021-10-06 09:24:03 534
原创 LeetCode数组中的第K个最大元素
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4提示:1 <= k
2021-10-05 19:48:07 118
原创 LeetCode哪种连续子字符串更长
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longer-contiguous-segments-of-ones-than-zeros给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串,返回 true ;否则,返回 false 。例如,s = “110100010” 中,由 1 组成的最长连续子字符串的长度是 2 ,由 0 组成的最长连续子字符串的长度是 3 。注意,如果字
2021-10-05 19:29:57 93
原创 LeetCode二叉树的层序遍历
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层序遍历结果:[[3],[9,20],[15,7]]思路:一层一层遍历,看到这个就应该想起来bfs了,满足这个同一层的
2021-10-05 16:57:07 112
原创 LeetCode合并两个有序链表
来源:力扣https://leetcode-cn.com/problems/merge-two-sorted-lists将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-
2021-10-05 16:02:23 78
原创 LeetCode把数组排成最小的数
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你
2021-10-05 15:34:12 137
原创 LeetCode腐烂的橘子
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotting-oranges在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:
2021-10-05 15:27:03 110
原创 LeetCode爬楼梯
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/climbing-stairs假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1.1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1.1 阶 + 1 阶 + 1 阶2.1
2021-10-05 15:07:41 70
原创 LeetCode排列序列
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-sequence给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。示例 1:输入:n = 3, k = 3输出:“213”示例 2:输入:n = 4, k = 9输出
2021-10-05 14:58:25 157
原创 LeetCode三数之和
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums
2021-10-05 13:05:30 76
原创 LeetCode岛屿数量
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-islands给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0
2021-10-05 10:29:13 89
原创 LeetCode基本计算器 II
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/basic-calculator-ii给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。示例 1:输入:s = "3+22"输出:7示例 2:输入:s = " 3/2 "输出:1示例 3:输入:s = " 3+5 / 2 "输出:5提示:1 <= s.length <= 3 * 10^5s 由整数和算符 (’+’, ‘-’
2021-10-04 16:14:19 152
原创 LeetCode根据字符出现频率排序
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-characters-by-frequency给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此
2021-10-04 14:43:25 108
原创 LeetCode矩形面积
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rectangle-area给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。示例 1:输入:ax1 = -3, ay1 = 0, ax2 =
2021-10-03 23:16:03 110
原创 LeetCode最大数
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-number给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:输入:nums = [10,2]输出:“210”示例 2:输入:nums = [3,30,34,5,9]输出:“9534330”示例 3:输入:nums = [1]输出:“1”示例 4:输入:
2021-10-03 22:05:21 261 2
原创 LeetCode单词搜索
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/word-search给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [[“A”,“B”,“C”,“E”],[“S”,“
2021-10-03 19:54:41 67
原创 LeetCode最近时刻
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-closest-time给定一个形如 “HH:MM” 表示的时刻,利用当前出现过的数字构造下一个距离当前时间最近的时刻。每个出现数字都可以被无限次使用。你可以认为给定的字符串一定是合法的。例如,“01:34” 和 “12:09” 是合法的,“1:34” 和 “12:9” 是不合法的。样例 1:输入: “19:34”输出: “19:39”解释: 利用数字 1, 9, 3, 4 构造出来
2021-10-03 16:24:30 2480
原创 LeetCode翻转字符串里的单词
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-words-in-a-string给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:
2021-10-03 14:38:16 84
原创 LeetCode网络延迟时间
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/network-delay-time有 n 个网络节点,标记为 1 到 n。给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。现在,从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1 。示例 1:
2021-10-03 13:25:39 65
原创 LeetCode俄罗斯套娃信封问题
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/russian-doll-envelopes给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。注意:不允许旋转信封。示例
2021-10-03 12:27:11 86
原创 LeetCode知识点
leetcode中C++常用知识点:①把数字变成字符串to_string(数字);②不能直接将一个字符,变成字符串。办法只有变为字符数粗,然后直接复制。例:S1 = a;(a是字符数组,S1是字符串)③不能直接给字符串的某个位置赋值,只能是字符串链接,例如S += to_string(数字);...
2021-10-03 10:38:40 126
原创 LeetCode字符串压缩
字符串压缩https://leetcode-cn.com/problems/compress-string-lcci/字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbccd”解释:“abbccd"压
2021-10-03 09:40:09 101
原创 LeetCode接雨水
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/trapping-rain-water给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:he
2021-10-03 00:04:19 181
原创 字典序问题
**问题描述:**在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26 个小写英文字母组成,即A={a,b,…,z}。该字母表产生的升序字符串是指字符串中字母按照从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次。例如,a,b,ab,bc,xyz 等字符串都是升序字符串。现在对字母表A 产生的所有长度不超过6 的升序字符串按照字典序排列并编码如下。标签:排列组合问题题解:题目的字典序说的有点迷,它应该是想表达先排一位,然后是两位…26位,首先假如没有考虑字典序
2020-09-22 17:43:44 872
原创 数字统计问题
算法设计:给定表示书的总页码的十进制整数n(1≤n≤10^9),计算书的全部页码中分别用到多少次数字数字0,1,2,…,9.输入:11输出:141111111题解:数论+找规律看到这种题,dfs把数重新组合复杂度比直接暴力枚举还要高,没用。只能找规律,重新划分区间才有可能。首先根据排列组合原理,在不考虑前导0没有意义的情况下,可以得到,0-9使用的次数是相等的,设f(n)代表当该数为n位时0-9使用的次数,这时需要找一下规律,然后根据高中所学的相加消元得到最终结果,上图:
2020-09-21 20:50:50 336
原创 洛谷P1350题解
洛谷P1350车的放置题解一个简单的DP。状态转移方程:f[j][i] = (f[j - 1][i] + f[j - 1][i - 1] * (v[j] - i + 1)) %100003;f[j][[i]代表到第j列,放置了i个车子总共的方案数。此题有坑:题目所给的图形是左边高右边低,但是我在递推的过程中发现前面会对后面有影响,例如: 第一列高度为2,第二列高度为1,假如车子放在了第一列的最高的部分,那么第二列就不需要减去前面放的车子数(因为肯定不在同一行,画一下就知道了),导致减的多,方案数变少
2020-09-07 15:00:18 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人