摘要: 有一些工作:difficulty[i]表示第i个工作的难度,profit[i]表示第i个工作的收益。 现在我们有一些工人。worker[i]是第i个工人的能力,即该工人只能完成难度小于等于worker[i]的工作。 每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。 举个例子,如果3个工人都尝试完成一份报酬为1的同样工作,那么总收益为 3。如&#x679... 阅读全文
posted @ 2019-05-12 19:32 围城DDD 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0&quo 阅读全文
posted @ 2019-05-08 11:34 围城DDD 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 class Solution { public int maxProduct... 阅读全文
posted @ 2019-05-08 09:46 围城DDD 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 在由若干 0 和 1 组成的数组 A 中,有多少个和为 S 的非空子数组。 示例: 输入:A = [1,0,1,0,1], S = 2 输出:4 解释: 如下面黑体所示,有 4 个满足题目要求的子数组: [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] 提示: A.length map = new HashMap(); m... 阅读全文
posted @ 2019-05-06 09:38 围城DDD 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。 class Solutio... 阅读全文
posted @ 2019-05-05 20:50 围城DDD 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入... 阅读全文
posted @ 2019-05-05 20:01 围城DDD 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出: [1... 阅读全文
posted @ 2019-05-05 10:16 围城DDD 阅读(141) 评论(0) 推荐(0) 编辑
摘要: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 示例: 输入: 4 输出: [ [".Q..", // 解法 1 "...Q"... 阅读全文
posted @ 2019-05-04 19:37 围城DDD 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 class Solution { public int longestConsecutive(int[] nums) { if (nums... 阅读全文
posted @ 2019-05-04 17:42 围城DDD 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。 class Solution { ... 阅读全文
posted @ 2019-05-04 11:31 围城DDD 阅读(61) 评论(0) 推荐(0) 编辑