随笔分类 -  算法

摘要:给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。 返回 A 的任意排列,使其相对于 B 的优势最大化。 示例 1: 示例 2: 提示: 思路:A排序之后,给B每个元素分配最小大于的元素,再删除A中该元素。若A中元素都比B中元素小 阅读全文
posted @ 2019-03-16 16:03 Hk_Mayfly 阅读(321) 评论(0) 推荐(0)
摘要:给定两个整数 A 和 B,返回任意字符串 S,要求满足: S 的长度为 A + B,且正好包含 A 个 'a' 字母与 B 个 'b' 字母; 子串 'aaa' 没有出现在 S 中; 子串 'bbb' 没有出现在 S 中。 示例 1: 示例 2: 提示: 思路:直观感觉,我们应该先选择当前所剩最多的 阅读全文
posted @ 2019-03-16 14:37 Hk_Mayfly 阅读(363) 评论(0) 推荐(0)
摘要:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你 阅读全文
posted @ 2019-03-14 22:33 Hk_Mayfly 阅读(617) 评论(0) 推荐(0)
摘要:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 示例 2: 示例 3: 阅读全文
posted @ 2019-03-14 22:30 Hk_Mayfly 阅读(737) 评论(0) 推荐(1)
摘要:设有n个活动的集合 M = {1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。 每个活动 i 都有一个要求使用该资源的起始时间 si 和一个结束时间 fi,且 si < fi。如果选择了活动i,则它在半开时间区间 [si ,fi ) 内占用资 阅读全文
posted @ 2019-03-13 22:10 Hk_Mayfly 阅读(206) 评论(0) 推荐(0)
摘要:贪心是一种算法范例,它一点一点地构建解决方案,总是选择下一个提供最明显和最直接好处的部分。因此,选择局部最优也会导致全局解的问题最适合贪心问题。 例如,考虑分数背包问题。局部最优策略是选择权重比最大的项。这个策略也导致了全局最优解。 假设1元、2元、5元、10元、20元、50元、100元的纸币分别有 阅读全文
posted @ 2019-03-13 20:52 Hk_Mayfly 阅读(2330) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-12 15:50 Hk_Mayfly 阅读(18) 评论(0) 推荐(0)
摘要:字符串:串使用串存储结构来储存字符串,串存储结构也是一种线性存储结构,因为字符串中的字符之间也具有"一对一"的逻辑关系,但是串存储结构只用来存储字符串。 串存储结构 串的定长顺序储存 就是我们在C语言中使用的数组,在使用数组前,我们都要申请足够大的空间来存储字符串,且大小不能改变,这也是不方便的地方 阅读全文
posted @ 2019-01-03 00:18 Hk_Mayfly 阅读(306) 评论(0) 推荐(0)
摘要:入门 首先先对递归进行入门。 递归是以自相似的方式重复项目的过程。在编程语言中,如果程序允许您在同一函数内调用函数,则称其为函数的递归调用。 简而言之,递归就是函数的自身调用。可以看看下面的递归使用: void Recursive() { Recursive();//call itself } in 阅读全文
posted @ 2018-11-07 03:20 Hk_Mayfly 阅读(1255) 评论(0) 推荐(0)
摘要:这道题需要用到回溯算法,现在在这里先简单的介绍一下这个算法: 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为: 1、定义一个解空间,它包含问题的解。 2、利用适于搜索的方法组织解空间。 阅读全文
posted @ 2018-03-04 21:09 Hk_Mayfly 阅读(6451) 评论(0) 推荐(3)