![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构算法
文章平均质量分 90
L._l
这个作者很懒,什么都没留下…
展开
-
算法刷题打卡(十五)
Leetcode108、116、118、121.原创 2021-12-02 12:57:33 · 146 阅读 · 14 评论 -
算法刷题打卡(十四)
102 二叉树的层序遍历102. 二叉树的层序遍历 - 力扣(LeetCode) (leetcode-cn.com)给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]] //宽度优先 按层遍历 public List<List原创 2021-11-30 11:56:49 · 748 阅读 · 9 评论 -
算法刷题打卡(十三)
91 解码方法91. 解码方法 - 力扣(LeetCode) (leetcode-cn.com)一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> 1‘B’ -> 2…‘Z’ -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为原创 2021-11-28 11:43:19 · 176 阅读 · 16 评论 -
算法刷题打卡(十二)
78 子集78. 子集 - 力扣(LeetCode) (leetcode-cn.com)给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]] public List<List<Integ原创 2021-11-26 12:31:25 · 1142 阅读 · 15 评论 -
算法刷题打卡(十一)
70 爬楼梯70. 爬楼梯 - 力扣(LeetCode) (leetcode-cn.com)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶//动态规划 F(n原创 2021-11-24 12:11:55 · 723 阅读 · 13 评论 -
算法刷题打卡(十)
56 合并区间56. 合并区间 - 力扣(LeetCode) (leetcode-cn.com)以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠原创 2021-11-22 13:24:44 · 695 阅读 · 13 评论 -
算法刷题打卡(九)
50 Pow(x,n)50. Pow(x, n) - 力扣(LeetCode) (leetcode-cn.com)实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25快速幂,考虑 系统最小值原创 2021-11-20 15:42:43 · 118 阅读 · 13 评论 -
算法刷题打卡(八)
44 通配符匹配44. 通配符匹配 - 力扣(LeetCode) (leetcode-cn.com)给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false原创 2021-11-18 12:01:03 · 380 阅读 · 11 评论 -
算法刷题打卡(七)
36 有效的数独36. 有效的数独 - 力扣(LeetCode) (leetcode-cn.com)请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 '.' 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字原创 2021-11-16 11:46:18 · 114 阅读 · 8 评论 -
算法刷题打卡(六)
28 实现strstr28. 实现 strStr() - 力扣(LeetCode) (leetcode-cn.com)实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的原创 2021-11-14 13:41:57 · 117 阅读 · 2 评论 -
算法刷题打卡(五)
21 合并两个有序链表21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com)将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0] public ListNode mergeTwoLis原创 2021-11-12 11:38:44 · 100 阅读 · 10 评论 -
算法刷题打卡(四)
15 三数之和15. 三数之和 - 力扣(LeetCode) (leetcode-cn.com)给你一个包含 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 = [0]原创 2021-11-10 12:02:02 · 266 阅读 · 3 评论 -
算法刷题打卡(三)
5.最长回文子串5. 最长回文子串 - 力扣(LeetCode) (leetcode-cn.com)给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”Manecher public static String longestPalindrome(原创 2021-11-07 21:23:51 · 107 阅读 · 4 评论 -
算法刷题打卡(二)
1 两数之和1. 两数之和 - 力扣(LeetCode) (leetcode-cn.com)给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9原创 2021-11-05 14:22:09 · 86 阅读 · 0 评论 -
算法刷题打卡(一)
最小路径和: 6464. 最小路径和 - 力扣(LeetCode) (leetcode-cn.com)给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:grid = [[1,2,3],[4,5,6]]输出:12题解:dp[ i ] [原创 2021-11-03 09:10:34 · 143 阅读 · 0 评论 -
一致性hash算法
一致性hash算法基本概念一致性hash算法也是取模运算,一致性hash是对2^32取模。首先把它想象成一个大圆, 我们把这个圆想象成由 2^32 个点组成的圆。圆环的正上方的点代表0,0点右侧的第一个点代表1,以此类推,2、3、4、5、6……直到2^32-1 ,也就是说0点左侧的第一个点代表2^32-1 ,我们把这个由2的32次方个点组成的圆环称为hash环。 那么,一致性哈希算法与上图中的圆环有什么关系呢?假设我们有3台缓存服务器,服务器A、服务器B、服务器C,那么,在生产环境中,这三台原创 2021-11-03 12:49:27 · 1189 阅读 · 4 评论