[LeetCode]The Skyline Problem
摘要:题目:The Skyline Problem A city's skyline is the outer contour of the silhouette formed by all the buildings in that city when viewed from a distance. N
阅读全文
[LeetCode]Increasing Triplet Subsequence
摘要:题目:Increasing Triplet Subsequence Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array. Formally th
阅读全文
[LeetCode]Wiggle Sort
摘要:题目:Wiggle Sort II Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3].... Example:(1) Given nums = [1, 5, 1, 1, 6
阅读全文
[LeetCode]Range Sum Query
摘要:题目:Range Sum Query - Immutable Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. Example: Note: 给定
阅读全文
[LeetCode]Sliding Window Maximum
摘要:题目:Sliding Window Maximum 给定一个数组和滑动窗口的大小,窗口从开始位置每次向后滑动一格,找出每次窗口的最大值; 思路: 记录当前窗口的最大值下标,每次移动一格时,最小下标会移出窗口,邻接着的最大下标会移入窗口; 因此,每次窗口移动时,首先比较移入的是否比当前最大值还大,是则
阅读全文
[LeetCode]Contains Duplicate
摘要:题目:Contains Duplicate 给定整数数组,查找数组是否包含任何重复项。 如果数组中的任何值至少出现两次,则函数应返回true,如果每个元素都不同,则返回false。 思路: 可以使用桶排序的思想来,遍历所有元素,通过元素值直接访问标志,当第一次遇到则设标志,第二次遇到就跳出循环。 但
阅读全文
[LeetCode]House Robber
摘要:题目:House Robber 给定一个数组求最大和,要求求和的每个元素不能相邻。 思路: 不要想太复杂,每次记录当前的最大值和前一个位置的最大值,然后比较即可。 具体就是动态规划的思想: F(i)表示数组前i项中符合上面要求的最大和;choose(i) = true表示F(i)的和中第i项被选中了
阅读全文
[LeetCode]Minimum Size Subarray Sum
摘要:题目:Minimum Size Subarray Sum 给定一个整数数组,和一个值,找到一个连续子序列,使其和>=给定的值,且该子序列长度最短。 思路1: 时间复杂度O(n),空间复杂度O(1)的解法。 使用首尾两个指针,求出两个指针之间的数据之和;当和大于等于s时,比较序列长度和最小值,然后,增
阅读全文
[LeetCode]Remove Element
摘要:下面是LeetCode中数组链表的删除操作的题目: 题目:Remove Element 删除数组中给定的值的所有元素,返回数组新的大小。 思路: 遍历数组,当找到该元素时,和最后的元素交换,删除最后的元素; 注意:交换并删除最后元素后,位置坐标不应该增加,还需要判断交换过来的原最后的元素是否等于给定
阅读全文
[LeetCode]Surrounded Regions
摘要:题目:Surrounded Regions 给定一个二维矩阵由'x'和'o'表示,其中o被x包围了,如果o上下左右中有其他的o,则被看做是连在一起的,而一起的o中有一个贴边了,就表示这些o都是活的。死的o要替换成x。 思路: 采用广度优先搜索或深度优先搜索来找到连在一起的o;只要遍历过程中有一个贴边
阅读全文
[LeetCode]Best Time to Buy and Sell Stock
摘要:题目:Best Time to Buy and Sell Stock 给定一个数组,数组中一个元素表示一天的股价,求一次交易能得到的最大收益。 思路: 数组可能是多个升序降序组成,只要能找到一组极值,使它们的差最大就可以了。 这样实际上就是每当找到一个极大值,就判断此时的到的差值是否比记录的最大值大
阅读全文
[LeetCode]Search a 2D Matrix
摘要:题目:Search a 2D Matrix 数组下一行最小值比上一行最大值大,且每一行递增排列。 确定数组中是否存在给定的值。 思路: 二维空间中的折半查找。 题目:Search a 2D MatrixII 给定一个二维数组,数组满足下面要求:每行中的整数按从左到右的顺序进行排序;每列中的整数按照从
阅读全文
[LeetCode]Container With Most Water
摘要:题目:Container With Most Water 给定一个int数组,找到两个值,以其下标的差为宽度,最短高度为高度求面积。 思路: 定义两个指针,一个从前往后,一个从后往前; 每次固定前面的指针,后面的遍历一遍找到最大的面积(和前面的循环结果比较)记录下来。 还有复杂度O(n)的做法。 同
阅读全文