leetcode523. Continuous Subarray Sum

2019-12-31
阅读 3 分钟
1.9k
Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to a multiple of k, that is, sums up to n*k where n is also an integer.

395. Longest Substring with At Least K Repeating Characters

2019-02-17
阅读 2 分钟
3k
这是一个经典的分治法解决的问题,关键在于我们如何将这个问题分解为更小的子问题。反过来想,这个子字符串一定不包含什么元素呢?当一个元素出现的总次数小于k,那么该元素一定不在子字符串中,只需要将其作为分界点,分别找出左半部分和右半部分的满足条件的最长子字符串。

leetcode315. Count of Smaller Numbers After Self

2018-04-01
阅读 4 分钟
2.9k
输入一个整数数组nums[i],返回所有一个新的数组count,该数组第i位上的count[i]表示nums[i]右侧小于nums[i]的数字的个数。

leetcode 321. Create Maximum Number

2018-03-25
阅读 3 分钟
2.9k
首先采用分治法的思路,我们知道这K个数字中,必然有i个数组来自nums1,而剩下的k-i个数字必然来自nums2。那么问题变成从nums1中获取i个数,这i个数构成的数字最大,且这i个数字的相对位置不变。再从nums2中获取k-i个数,这k-i个数构成的数字最大,且这k-i个数字的相对位置不变。

leetcode 312. Burst Balloons

2018-03-17
阅读 3 分钟
2.7k
这里讲了一个炸气球小游戏的规则。当我们选中一个气球并炸掉它后,会得到该气球以及其相邻两个气球的分数的乘积,并加入我们的积分。之后该气球将消失,从而其左右两个气球成为相邻的气球。问如何选择气球才能使得积分数最高。

leetcode241. Different Ways to Add Parentheses

2018-02-25
阅读 4 分钟
2.1k
这是经典的分治法。我们将算式从一个操作符的位置分割开,并分别得出左边和右边算式所有可能的值。再将左右的值分别按照操作符进行计算。这里通过递归实现。

leetcode 240. Search a 2D Matrix II

2018-02-11
阅读 4 分钟
2.2k
直观的来看我们肯定会从左上角开始判断,如果当前的值比目标值大,那么结束返回该值不存在,而如果当前的值比目标值小,则我们顺着行或是列继续查找。代码如下: