摘要: leetcode-1734 解码异或后的排列 解题思路 异或运算特性 \(a \bigoplus b=c\ \ \ \ \ \ c\bigoplus a=b\) encode数组长度为n-1,则perm数组长度为n perm=[1,2,3,......,n]的排列 假设perm=[A,B,C,D,E 阅读全文
posted @ 2021-10-16 10:53 流光之中 阅读(40) 评论(0) 推荐(0) 编辑
摘要: leetcode-1707 与数组中元素的最大异或值 解题思路 利用前缀树解决,方法同leetcode421,leetcode421是在整个前缀树中寻找异或值最大的那个值,本题是在小于m的前缀树中对应异或最大的值。 因为queries数组是无序的,如果采用暴力方法+前缀树,则每次查询需要重新构建一次 阅读全文
posted @ 2021-10-16 10:48 流光之中 阅读(27) 评论(0) 推荐(0) 编辑
摘要: leetcode-1269 停在原地的方案数 题目 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。 每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。 给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 阅读全文
posted @ 2021-10-16 10:47 流光之中 阅读(28) 评论(0) 推荐(0) 编辑
摘要: leetcode-897 递增顺序搜索树 DFS+栈实现 1. 题目 给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 2. 思路 使用递归实现二叉树的中序遍历较为简单,先遍历左子树,在输出当前节点 阅读全文
posted @ 2021-10-16 10:46 流光之中 阅读(36) 评论(0) 推荐(0) 编辑
摘要: leetcode-714 买卖股票的最佳时机含手续费 1. 题目 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买 阅读全文
posted @ 2021-10-16 10:45 流光之中 阅读(98) 评论(0) 推荐(0) 编辑
摘要: leetcode-525 连续数组 解题思路 解题思路同leetcode-523一致,需要进行预处理,对于一串连续的数组,如果符合条件,其中的0,1数量是一致的,将0变为-1,则数组变为-1和1构成的数组,如果存在一个子数组0、1数量一致,那么新数组-1、1数量一致,则该新子数组求和结果为0,接下来 阅读全文
posted @ 2021-10-16 10:44 流光之中 阅读(34) 评论(0) 推荐(0) 编辑
摘要: leetcode-692 前K个高频单词 Python优先队列的使用 解题思路 hash+sort 统计每个单词出现的频率,然后对字典进行自定义排序,自定义排序操作 sorted(word_dict.items(),key=functools.cmp_to_key(comp)) hash+prior 阅读全文
posted @ 2021-10-16 10:44 流光之中 阅读(123) 评论(0) 推荐(0) 编辑
摘要: leetcode-523 连续的子数组和 解题思路 前缀和 超时 复杂度(\(O(n^2)\)) 使用一维矩阵sum_matrix存储前缀和,$summatrix[i]$表示$0-i$元素连续的子数组和,则$summatrix[j]-summatrix[i]$表示$i-j$元素的子数组和,则条件成立 阅读全文
posted @ 2021-10-16 10:43 流光之中 阅读(42) 评论(0) 推荐(0) 编辑
摘要: Leetcode-496 下一个更大元素 题意: 给定两个数组,数组1为数组2的子集,遍历数组1,求出数组1中每个元素在数组2中该元素右边的第一个比该数大的元素,若不存在,则返回-1. eg: nums1=[4,2,3,1] nums2=[3,4,5,1,2] 遍历数组1,对于元素4,更大的元素为5 阅读全文
posted @ 2021-10-16 10:42 流光之中 阅读(31) 评论(0) 推荐(0) 编辑
摘要: leetcode-494 目标和 1. 题目 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 2. 解题思路 阅读全文
posted @ 2021-10-16 10:41 流光之中 阅读(32) 评论(0) 推荐(0) 编辑
摘要: leetcode-453 最小移动次数使数组元素相等 题目: 给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 思路: 每次移动元素使得n-1元素加一,实际只需要计算操作元素的次数即可。 假设操作元素的次数为m,则,经过m次操作后, 阅读全文
posted @ 2021-10-16 10:40 流光之中 阅读(81) 评论(0) 推荐(0) 编辑
摘要: leetcode-421 数组中两个数的最大异或值 前缀树 1. 题目 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。 2. 思路 暴力解法通过双层for循环求出最大的异或结果,时间复杂度为$O(n^2)$ 超时 前缀 阅读全文
posted @ 2021-10-16 10:38 流光之中 阅读(25) 评论(0) 推荐(0) 编辑
摘要: leetcode-198 打家劫舍 题目 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 解题思路 本体使用动态规划思想解答,所以需要列出状态转移方程。因该小偷会 阅读全文
posted @ 2021-10-16 10:37 流光之中 阅读(35) 评论(0) 推荐(0) 编辑
摘要: leetcode-225 用队列实现栈 1.题目 使用队列的基本操作实现栈的共,可以使用list或者双端队列deque 2.解题方法 使用vector实现,维持一个top数值代表栈顶元素的index,每次插入、删除元素会导致top元素的变化 使用deque实现时,原理同vector,插入和删除元素都 阅读全文
posted @ 2021-10-16 10:37 流光之中 阅读(26) 评论(0) 推荐(0) 编辑
摘要: leetcode-121 买卖股票的最佳时机 题目: 给定一数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易 阅读全文
posted @ 2021-10-16 10:36 流光之中 阅读(31) 评论(0) 推荐(0) 编辑
摘要: leetcode-111 二叉树的最大(最小深度) 二叉树的最小深度,指的是从根节点到最近叶子节点最短路径的节点数量 二叉树的最大深度,指的是从根节点到最远叶子节点的最长路径的节点数量 解决方法: 使用递归的方法,从叶子节点开始累加, 对于二叉树的最小深度,当一个节点的左子树为空时,最小深度为其右子 阅读全文
posted @ 2021-10-16 10:35 流光之中 阅读(38) 评论(0) 推荐(0) 编辑
摘要: Leetcode-108 将有序数组转换为二叉搜索树 题目 给定一个数组,将其转换为二叉搜索树。 二叉搜索树特点: 父节点元素大于左子节点元素,小于右子节点元素 是一颗平衡二叉树,即每个元素的左右子树高度差的绝对值不超过1 解题思路 一个元素一个元素地插入至二叉搜索树中,每插入一个元素,二叉树需要重 阅读全文
posted @ 2021-10-16 10:34 流光之中 阅读(27) 评论(0) 推荐(0) 编辑
摘要: leetcode-110 平衡二叉树 平衡二叉树特点:在二叉树中,每个节点的左右子树高度只差小于等于1 遍历二叉树中的每个节点 计算每个节点的左右子树高度 class Solution: def isBalanced(self, root: TreeNode) -> bool: if not roo 阅读全文
posted @ 2021-10-16 10:34 流光之中 阅读(20) 评论(0) 推荐(0) 编辑
摘要: leetcode-107 二叉树的层次遍历 1. 二叉树的层次遍历,即通过使用队列的方法(可用数组代替),每次存储某一层的所有节点,然后在一个for循环中遍历该节点,将所有节点的子节点入队,并记录下所有节点的值,将他们堆入栈中。 2. example 根节点入队 cur=[3],res=[[3]] 阅读全文
posted @ 2021-10-16 10:33 流光之中 阅读(22) 评论(0) 推荐(0) 编辑
摘要: leetcode-96 不同的二叉搜索树 解题思路 对于从1-n所有的二叉搜索树,共有n种(每种的顶点相同) 设Fn为从1-i的以n为根的二叉搜索树的个数 dp[n]为1-i的所有的二叉搜索树的个数 对于以i为根的二叉搜索树,它的左子树共有Fn[i-1]种,右子树共有Fn[n-i-1]种,则以i为根 阅读全文
posted @ 2021-10-16 10:32 流光之中 阅读(12) 评论(0) 推荐(0) 编辑