算法刷题
惊弦_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 4. 寻找两个正序数组的中位数 ( (Java)执行用时击败100.00%的用户)
题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。 进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗? 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000 解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3)原创 2020-11-13 16:07:40 · 292 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串 (Java)
题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。 来源:力扣原创 2020-11-13 14:51:40 · 139 阅读 · 0 评论 -
LeetCode 2. 两数相加 (Java) (执行用时击败99.92%的用户)
题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 来源:力扣(LeetCode) 链接:https://leetc原创 2020-11-13 10:43:40 · 363 阅读 · 0 评论 -
LeetCode 1.两数之和 (Java)
题目 LeetCode链接 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解法 暴力破解就不多说了直接贴代码 public int[] twoSum(int[] nums, int原创 2020-11-13 09:31:05 · 117 阅读 · 0 评论 -
多多的魔术盒子 Java
题目描述 多多鸡有N个魔术盒子(编号1~N),其中编号为i的盒子里有i个球。 多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个。 通过观察,皮皮虾已经掌握了其中的奥秘,并且发现只要通过一定的操作顺序,可以用最少的次数将所有盒子里的球变没。 那么请问聪明的你,是否已经知道了应该如何操作呢? 思路 N的值 1 2 3 4 5 6 7 8 … 最少次数 1 2 2 3 3 3 3 4 … 最少次数的值规律:2^0个1,原创 2020-11-09 14:50:23 · 263 阅读 · 0 评论 -
定义栈的数据结构,在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度为O(1))
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路: 题目要求找到最小值得时间复杂度是O(1),说明不能遍历数据集合,需要立马找到,那就只能从数据的push和pop入手,下面是我的思考过程: 1.首先是考虑加一个变量记录当前的最小值,在push的时候记录放入的数据的最小值,但是在pop出最小值的时候,就不知道当前栈内的最小值是多少了 2.所以每次push数据的时候,可以考虑增设一个数据集合按小到大排序, 每push一次数据,就将新数据放到原创 2020-10-30 15:37:49 · 222 阅读 · 0 评论 -
判断目标数组是不是某二叉搜索树的后序遍历的结果
题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 思路 首先收集二叉搜索树的特点,所有非叶子节点的左子节点的值必须小于该节点,同比类推右子节点的值大于该节点,后序遍历就是先按 左子树-右子树-中间节点 的顺序遍历的,据此可以推断出以下结论: 所有二叉搜索树的后序遍历都必须满足:(小于根节点的数集)(大于根节点的数集)根节点 这种形式(为了方便下面用“小区间”,“大区间”分别代指“小于根节点的数集”和“大于原创 2020-10-30 15:29:13 · 359 阅读 · 0 评论
分享