LeetCode
文章平均质量分 60
Sunburst7
这个作者很懒,什么都没留下…
展开
-
前序中序构造二叉树——分治
题目描述给定一棵树的前序遍历preorder与中序遍历inorder。请构造二叉树并返回其根节点。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]思路在找到根节点后,可以把构造二叉树的任务分解成构造左二叉子树与右...原创 2021-10-07 17:21:11 · 498 阅读 · 0 评论 -
分治、动态规划、贪心算法的比较
最近学习了这三种算法的思想,发现这三者之间有相似也有不同,总结一篇博客。目录一:三种算法的联系二:三种算法的区别一:三种算法的联系分治、动态规划、贪心算法都是把一个大的问题给分解成子问题,通过解决子问题来最终解决原问题的。具体的来说:分治:主要分为三个步骤递归的解决问题。divide:将问题划分为一些子问题,形式相同,规模更小conquer:递归的求解子问题,当子问题足够小进入基本情况(base case),停止递归,返回到上一层递归。combine:返回递归调用的过程,逐步将子问题的原创 2021-10-07 16:52:17 · 1469 阅读 · 1 评论 -
序列自动机
目录序列自动机构造查询例题序列自动机序列自动机是一个可以快速判断字符串t是否是字符串s的子串的一个算法。使用空间复杂度来换取时间复杂度。构造对字符串s构造序列自动机,使用nxt数组。nxt[i][j]代表从第i个位置开始,字符j出现的第一个位置。我们倒着遍历更新即可。 int nxt[N][27]; void init(char *s){ int l=strlen(s); for(int i=0;i<26;i++)原创 2021-09-30 16:38:00 · 719 阅读 · 0 评论 -
颠倒二进制位——位运算
目录题目描述位运算知识标准题解题目描述颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。示例 1:输入:n = 00000010100101原创 2021-09-29 09:44:51 · 515 阅读 · 0 评论 -
将有序数组转变为二叉搜索树
目录题目描述题目描述给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入:nums = [1,3]输出:[3,1].原创 2021-09-28 14:40:53 · 143 阅读 · 0 评论 -
有效的字母异位词
有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false**说明:**你可以假设字符串只包含小写字母。思路:先使用hash表存储第一个字符串的所有字符的出现次数,再用一个for循环遍历另一个字符串,出现一个字符把字符映射的哈希表值减1,最后判断hash表是否是全0。class S原创 2021-06-08 19:51:37 · 109 阅读 · 0 评论