算法
文章平均质量分 89
weixin_39505091
这个作者很懒,什么都没留下…
展开
-
常用表达式
【代码】常用表达式。原创 2023-11-01 14:59:57 · 95 阅读 · 0 评论 -
LeetCode Hot 100
LeetCode Hot 100原创 2022-07-31 20:26:11 · 138 阅读 · 0 评论 -
LeetCode - 二叉树、图
文章目录一. 二叉树1. 树的递归2. 层次遍历3. 前中后序遍历4. 二叉查找树5. 字典树6. 其他一. 二叉树1. 树的递归例题 104. 二叉树的最大深度。给定一个二叉树,找出其最大深度。public int maxDepth(TreeNode root) { if (root == null) { return 0; } return Math.max(maxDepth(root.left) + 1, maxDepth原创 2022-05-31 19:22:45 · 183 阅读 · 0 评论 -
LeetCode - 字符串与链表
文章目录1. 字符串比较1. 字符串比较例题 242,有效的字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。第一种方式排序后判断是否相等;第二种,哈希表存储字母出现频次。由于字母在26之内,因此可以通过26位数组代替哈希表。public boolean isAnagram(String s, String t) { if (s.length() != t.length()) { return false;原创 2022-05-19 19:18:39 · 482 阅读 · 0 评论 -
LeetCode - 数据结构
文章目录一. 数组一. 数组列题 448,找到所有数组中消失的数字。给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。可以直接用 hash;这种确定数值范围的题可以考虑用数值作为数组下标是否有用。这道题没有使用额外空间,在原数组上做的修改,稍微会绕一点。public List<Integer> findDisappearedNumbers(int[]原创 2022-05-10 21:14:56 · 671 阅读 · 0 评论 -
LeetCode - 位运算
文章目录一. 位运算1. 基础问题一. 位运算Java int 类型可以直接进行位运算,运算完成后的结果也是十进制的 int 类型;n & (n-1) 可以去除 n 中最低位的 1;如 0100 & 0011 = 0000n & (-n) 可以得到 n 中最低位的 1;(注意负数在计算机中是以补码的形式出现),如 0100 & 1100 = 0100。1. 基础问题例题461,汉明距离。两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给原创 2022-04-28 19:36:17 · 251 阅读 · 0 评论 -
LeetCode - 分治法与数学问题
文章目录一. 分治法二. 数学问题1. 最大公约数/最小公倍数2 .找质数3. 进制转换4. 阶乘后的零5. 字符串相加一. 分治法分治问题由“分”(divide)和“治”(conquer)两部分组成,通过把原问题分为子问题,再将子问题进行处理合并,从而实现对原问题的求解。如归并排序。另外,自上而下的分治可以和 memoization 结合,避免重复遍历相同的子问题。如果方便推导,也可以换用自下而上的动态规划方法求解。例题 241. 为运算表达式设计优先级。给你一个由数字和运算符组成的字符串 ex原创 2022-04-19 19:59:42 · 590 阅读 · 0 评论 -
LeetCode - 动态规划
文章目录一. 动态规划一. 动态规划动态规划适用于最优子结构问题,即全局最优解由局部最优解决定;它将原问题拆成多个子问题求解,与深度优先广度优先的区别是它需要保存子问题的解避免重复计算;动态规划的关键是要找到状态转移方程;动态规划还能进行空间压缩以节省空间。例题70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?n阶台阶的走法等于走到第n-1阶台阶的走法 + 走到第n-2阶台阶的走法,因此状态转移方程:dp[i原创 2022-03-26 15:47:02 · 581 阅读 · 0 评论 -
LeetCode - 深度广度优先
文章目录六. 搜索算法1. 深度优先搜索2.六. 搜索算法1. 深度优先搜索例题 695 求最大岛屿的面积。即求最大的连通区域的大小;主函数遍历矩阵,判断当前元素是否需要递归判断连通岛屿的面积;辅助函数用于递归计算岛屿面积;注意遍历过的地方需要将 1 置为 0 ,防止重复计算。 //辅 public int searchGrid(int[][] grid, int i, int j) { if(i >= grid.length || i < 0 || j原创 2022-02-28 20:41:33 · 261 阅读 · 0 评论 -
LeetCode -贪心/双指针/二分查找/排序
文章目录一. 贪心算法二. 双指针1. 典型 Two Sum2. 归并数组3. 快慢指针一. 贪心算法二. 双指针1. 典型 Two Sum例题167。采用相反的两个指针遍历数组。一个初始指向最小的元素,即数组最左边,向右遍历;一个初始指向最大的元素,即数组最右边,向左遍历。2. 归并数组例题88。归并两个有序数组使之成为一个有序数组。如果不重新开辟空间,直接将数组b中的元素插入到数组a中,会出现数组a后续的元素被覆盖的情况(元素需要不断后移)。所以,如果数组的数据有被覆盖的风险,可以记得用倒原创 2022-01-31 16:28:46 · 925 阅读 · 1 评论