摘要:
在 的网格上,我们放置一些 的立方体。 每个值 表示 个正方体叠放在对应单元格 上。 请你返回最终形体的表面积。 思路: 计算每个位置的表面积,然后相加。其中计算每个位置的面积为 ,`inner 2 (n 1) outer 上下左右 4` 个方向取 即可。 注意: 题目可能会有某个位置的正方体的个数 阅读全文
摘要:
无重叠区间是一类十分经典的问题,很多问题的模型就是基于这一就无重叠区间问题的。 首先,一个很直接的思路就是这类题目和LIS(最长上升子序列问题)很像。 所以考虑使用 来解这道题 java import java.util.Arrays; class Solution { public int era 阅读全文
摘要:
一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。 暴力法:对于每个预约都有可选和可不选的两种情况 记忆型递归:暴力法的问题在于有很多重复 阅读全文
摘要:
状态的定义: 代表以下标为 结尾的最大摆动序列 因为这里涉及到正负还有0 所以使用 存的是目前为止最长的以第 个元素结尾的上升摆动序列的长度。 类似的, 记录的是目前为止最长的以第 个元素结尾的下降摆动序列的长度。 我们每当找到将第 个元素作为上升摆动序列的尾部的时候就更新 。现在我们考虑如何更新 阅读全文
摘要:
参考了,leetcode官方题解的方法,使用计数的方式 算法 首先统计出每个数出现的次数,然后从小到大遍历每个数 : 如果 出现了两次以上,就将额外出现的数记录下来(例如保存到一个列表中); 如果 没有出现过,那么在记录下来的数中选取一个 ,将它增加到 ,需要进行的操作次数为 。 我们还可以对该算法 阅读全文
摘要:
有明确的初始状态和最终状态 可以使用BFS来解决,主要考虑下一步可能状态next的求解,是个体力活 解法二: "贝祖定理" 我们认为,每次操作只会让桶里的水总量增加 ,增加 ,减少 ,或者减少 。 你可能认为这有问题:如果往一个不满的桶里放水,或者把它排空呢?那变化量不就不是 或者 了吗?接下来我们 阅读全文
摘要:
直接使用API函数调用快速排序,面试种肯定是不行的! 利用快速排序的分区思想,我们知道快排的划分函数每次执行完后都能将数组分成两个部分,小于等于分界值 的元素的都会被放到数组的左边,大于的都会被放到数组的右边,然后返回分界值的下标 。 那么: 如果 = 直接返回 = arr[base]){ righ 阅读全文
摘要:
给定一个非负整数数组,a1, a2, ..., an, 和一个目标数, 。现在你有两个符号 和` +` 或 中选择一个符号添加在前面。 返回可以使最终数组和为目标数 的所有添加符号的方法数。 dp数组的含义 : dp[i][j] 表示用数组中的前 i 个元素,组成和为 j 的方案数 状态转移方程: 阅读全文
摘要:
在计算机界中,我们总是追求用有限的资源获取最大的收益。 现在,假设你分别支配着 个` 0 n 1`。另外,还有一个仅包含 和 字符串的数组。 你的任务是使用给定的 个 和 个 ,找到能拼出存在于数组中的字符串的最大数量。每个 和 至多被使用一次。 注意: 给定 和 的数量都不会超过 。 给定字符串数 阅读全文
摘要:
给定一个包含了一些 和 的非空二维数组 , 一个 岛屿 是由四个方向 (水平或垂直) 的 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 。) 示例 1: {0, 0, 1, 0, 0, 0, 0, 1, 0, 阅读全文