优先队列和二叉堆

2021-02-01
阅读 6 分钟
1.7k
有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。你打算每天 最多 吃一个苹果来保证营养...

原地hash和时间复杂度的一点理解

2020-12-01
阅读 3 分钟
2.6k
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例输入: [1,3,4,2,2]输出: 2输入: [3,1,3,4,2]输出: 3给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。

LeetCode.28 实现 strStr (JS sunday算法)

2020-07-26
阅读 2 分钟
1.7k
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。示例输入: haystack = "hello", needle = "ll"输出: 2 输入: haystack = "aaaaa", needle = "bba"输出: -1 说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在...

LeetCode.21&23 合并K个有序链表(JS)

2020-01-29
阅读 2 分钟
1.5k
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4

LeetCode.11 盛最多水的容器(Container With Most Water)(JS)

2019-07-18
阅读 2 分钟
2k
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。

LeetCode.42 接雨水(Trapping Rain Water)(JS)

2019-06-12
阅读 4 分钟
2.8k
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 1:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6

LeetCode.6 Z 字形变换(zigzag-conversion)(JS)

2019-05-29
阅读 3 分钟
2.2k
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L   C   I    RE T O E S  I  I   GE   D   H   N(这个字符排列看不懂的话推荐去看一下原题,原题的调整示例比较清晰)之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,...

LeetCode.5 最长回文子串(longest-palindromic-substring)(JS)

2019-04-07
阅读 2 分钟
2.1k
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd"输出: "bb"

LeetCode.2 两数相加(Add Two Numbers)(JS)

2019-03-26
阅读 4 分钟
3.2k
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例: 示例 输入:(2 -> 4 -> 3) + (5 -> 6 ...

LeetCode.3 无重复字符的最长子串(JS)

2019-03-23
阅读 4 分钟
6.1k
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以...

LeetCode.1 两数之和(Two Sum)(JS)

2019-03-22
阅读 2 分钟
4.4k
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例 给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]