摘要: 归并两个已排序数组为一个数组,不同于归并排序的归并用一个额外的数组,这里在第一个数组预留出足够的空间,所以需要直接在第一个数组里存放原来的两个数组的所有元素。 归并排序里,是额外开一个数组,然后两个指针分别从第一个数组和第二个数组的开头进行比较,比较小的那一个元素加入新数组中,然后某个数组为空之后, 阅读全文
posted @ 2020-07-17 23:48 machine_gun_lin 阅读(128) 评论(0) 推荐(0)
摘要: 判断S2是否是S1的扰乱字符串。根据题目的定义,S1如果经过若干次对于部分子串的翻转操作能够得到S2,则S2是S1的扰乱字符串。 首先,如果S2是S1的扰乱字符串,那么S1中每个字符的出现次数必然和S2中每个字符的出现次数一致,也就是说,我们用两个字符串S3、S4备份一下S1和S2, 对S3和S4排 阅读全文
posted @ 2020-07-17 22:57 machine_gun_lin 阅读(147) 评论(0) 推荐(0)
摘要: 要根据链表节点的值是否大于等于x将链表划分为两段,首先需要链表中大于等于x和小于x的节点的个数,所以无法直接在原链表上做修改。 既然要分开大于等于x的值和小于x的值,我们可以考虑开两个链表,这样按顺序扫描原链表的时候,小于x的值接到第一个链表,大于等于x的值接到第二个链表。 然后再把这两个链表连接起 阅读全文
posted @ 2020-07-17 21:39 machine_gun_lin 阅读(82) 评论(0) 推荐(0)
摘要: 这题其实是84题的进阶版。 要求最大矩形,同样也是枚举所有矩形,关键就在于如何枚举。 如果直接枚举所有起点和终点,复杂度最起码是O(n^4),超时。 所以要换种方式枚举,可以考虑固定住所有矩形的底边,比如以每一行作为底边,枚举以这个底边,往上有哪些矩形,分别计算面积。 固定住底边之后,网上所有的连续 阅读全文
posted @ 2020-07-17 11:58 machine_gun_lin 阅读(123) 评论(0) 推荐(0)
摘要: 要求能勾勒出来的矩形的最大高度,很自然的想法就是枚举所有矩形的宽度和高度,再通过高度和宽度的乘积求出所有矩形的面积,这样就可以知道最大矩形的面积了。 暴力做法是,枚举所有矩形的宽度(也就是枚举左边界和右边界),再求出左边界和右边界内柱子的最小高度(瓶颈高度),然后得到矩形的面积。 代码如下: cla 阅读全文
posted @ 2020-07-17 11:01 machine_gun_lin 阅读(154) 评论(0) 推荐(0)