随笔分类 -  动态规划

摘要:我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”: B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 阅读全文
posted @ 2020-10-25 19:01 zmachine 阅读(260) 评论(0) 推荐(0)
摘要:你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以剪切成  阅读全文
posted @ 2020-10-24 10:38 zmachine 阅读(115) 评论(0) 推荐(0)
摘要:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100数组的大小不会超过 200示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2: 输 阅读全文
posted @ 2020-10-11 17:51 zmachine 阅读(334) 评论(0) 推荐(0)
摘要:给定一个无向、连通的树。树中有 N 个标记为 0...N-1 的节点以及 N-1 条边 。 第 i 条边连接节点 edges[i][0] 和 edges[i][1] 。 返回一个表示节点 i 与其他所有节点距离之和的列表 ans。 示例 1: 输入: N = 6, edges = [[0,1],[0 阅读全文
posted @ 2020-10-06 11:36 zmachine 阅读(188) 评论(0) 推荐(0)
摘要:给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例: 输入:nums: [1, 1, 1, 1, 1], 阅读全文
posted @ 2020-10-04 09:59 zmachine 阅读(157) 评论(0) 推荐(0)
摘要:在计算机界中,我们总是追求用有限的资源获取最大的收益。 现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。 你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。 示例 1: 阅读全文
posted @ 2020-10-01 16:53 zmachine 阅读(219) 评论(0) 推荐(0)
摘要:小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等 阅读全文
posted @ 2020-10-01 09:03 zmachine 阅读(175) 评论(0) 推荐(0)
摘要:Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from either end of the array followed by the player 2 and t 阅读全文
posted @ 2020-09-01 08:15 zmachine 阅读(156) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; const int maxn = 100;//物品最大数 const int maxv = 1000;//容器v的上限 int w[maxn],c[maxn],dp[maxn]; int main() { i 阅读全文
posted @ 2020-08-31 16:30 zmachine 阅读(121) 评论(0) 推荐(0)