
algo
文章平均质量分 57
spring-hz
a programming engineer
展开
-
leetcode-数组中的第K个最大元素-215-最大堆
给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。示例1输入输出5示例2输入输出4提示。原创 2022-07-21 09:57:51 · 447 阅读 · 1 评论 -
leetcode-买卖股票的最佳时机
leetcode 本质就是寻找数组中差值 (相对靠后的元素的值-相对靠前的元素值) 最大的两个元素。容易想到使用双指针,指针front 指向相对靠前的元素,初始值为0; 指针back指向相对靠后的元素,初始值为nums.length-1; int max 表示当前遍历到的所有情况下的最大差值。 现在的目标就是寻找一种移动,指针的方式,遍历所有可能的情况,获得最大差值。1 . 记录; 2 . 如果且, 表示front后的一个元素比front当前元素可能更小,那么与back结合形成的差值就更大。所以 可以使f原创 2022-07-09 17:22:33 · 369 阅读 · 0 评论 -
leetcode-二叉树的最近公共祖先-递归
leetcode我的第一想法就是判断p,q是否在root的同一侧子树上, 具体决策步骤就是: 1 . 如果,则p就是p,q的最近公共祖先。 2 . 如果,则q就是p,q的最近公共祖先。 3 . 如果p,q分别在root的两侧的子树上,则root就是p,q的最近公共祖先。 4 . 如果p,q都在root的同一侧子树上,比如都在root的左子树上,就可以运用递归思想,令root为当前root节点的左孩子节点,依然进行上述分析,分析的问题其实没有变,只是数据规模变小了。直至1或2或3中的条件满足就递归结束。我们需原创 2022-06-28 10:07:18 · 476 阅读 · 0 评论 -
leetcode-三数之和-15-排序+双指针
原题链接给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。思考点1:如何做到不重复a. 因为三元组要求不重复,我们第一感觉就是要对数组进行升序排序,否则分析会产生困难。比如 。不排序的话,会有多种方式选择到,而且去重也不好想办法。b. 基于a,数组排序后,因为可能存在连续的相同数值,比如。很明显,只有一个三元组符合要求。四个元素选取哪两个呢?这引发出第二个原创 2022-06-22 00:00:25 · 164 阅读 · 0 评论 -
leetcode-正则表达式-10
原题链接 https://leetcode.cn/problems/regular-expression-matching/给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。提示:官方的解释已经很不错了,无意间看到了英文版leetcode的一个分析总结,点这里...原创 2022-06-21 00:09:30 · 97 阅读 · 0 评论 -
leetcode7-整数反转-数学
原题链接 https://leetcode.cn/problems/reverse-integer/给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123 输出:321 示例 2:输入:x = -123 输出:-321 示例 3:输入:x = 120 输出:21 示例 4:输入:x = 0 输出:0分析:1 .原创 2022-06-19 23:32:34 · 371 阅读 · 0 评论 -
归并排序
考察递归使用 package com.gson.algo.sort; import java.util.Arrays; /** * 归并排序 */ public class MergeSort { /** * 假设a,b ,返回a,b合并后的排序结果 * * @param a * @param b * @return */ public static int[] merge(int[] a, int[] b) {原创 2021-04-10 20:26:19 · 90 阅读 · 0 评论 -
判断二叉树是否对称
牛课网剑指 offer JZ58 特征提取&&递归 对称二叉树具有以下特征 假设x=root.left;y=x.right,则x,y具有以下特征 x.val equals y.val && x.left.val equals y.right.val && x.right.val equals y.left.val 则可以设置一个递归函数isSame(TreeNode left, TreeNode right) 递归终止条件是 left,righ原创 2021-04-06 00:01:09 · 872 阅读 · 1 评论 -
子数组-letcode78
题目 https://leetcode-cn.com/problems/subsets/ 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2: 输入:nums = [0] 输出:[[],[0]] for循环 假设, 如果已知 [1,2,3]的所有子数原创 2021-03-17 00:43:54 · 1938 阅读 · 0 评论