February 13, 2019
LeetCode
1. 题面(一道经典DFS)给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。
找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)
示例 1:
...
Read more
February 13, 2019
LeetCode
1. 题面给定一个未经排序的整数数组,找到最长且连续的的递增序列。
示例 1:
1234输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。
示例 2:
1 ...
Read more
February 13, 2019
LeetCode
1. 题面给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。
换句话说,第一个字符串的排列之一是第二个字符串的子串。
示例1:
123输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 ...
Read more
February 13, 2019
LeetCode
1. 题面在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
12输入: [3,2,1,5,6,4] 和 k = 2输出: 5
示例 2:
12输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 ...
Read more
February 13, 2019
LeetCode
1. 题面反转一个单链表。
示例:
12输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL
进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
2. 解答123456789101 ...
Read more
February 13, 2019
LeetCode
1. 题面设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。
示例:
12345678MinStack ...
Read more
February 13, 2019
LeetCode
1. 题面给定一个字符串,逐个翻转字符串中的每个单词。
示例:
12输入: "the sky is blue",输出: "blue is sky the".
说明:
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后 ...
Read more
February 13, 2019
LeetCode
1. 题面运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。
获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, ...
Read more
February 13, 2019
LeetCode
1. 题面给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
123输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。
2. 解答12345678910111213141 ...
Read more
February 13, 2019
LeetCode
1. 题面给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例 1:
1234输入: [7,1,5,3,6,4] ...
Read more