2018年9月12日

摘要: 这道题中要求使用O(1)的方法来删除和插入元素的,那么首先需要寻找到对应的元素,这个可以使用map的O(1)的查询时间的,然后是删除对应的元素的,那么可以根据 堆排序中类似的做法把最后面的元素插入到前面来并且置换掉对应的值的。 阅读全文
posted @ 2018-09-12 17:26 昔风不止,唯有努力生存 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 要求求出在一个序列中的所有数字的二进制的和,那么会发现左边相与相等即可的,则可以利用最大值的不断右移来实现的。 阅读全文
posted @ 2018-09-12 17:21 昔风不止,唯有努力生存 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 与之前求直方图的最大面积类似,对于行从上到下把所有的高度累计求和出来然后根据这些值来求解最大的面积的。 阅读全文
posted @ 2018-09-12 16:56 昔风不止,唯有努力生存 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 验证数字是否是合法的,考虑使用编译原理中的DFA图来做的,分别赋予不同的状态以及在状态之间的转化过程的。 阅读全文
posted @ 2018-09-12 16:26 昔风不止,唯有努力生存 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 根据题意的话就是在非0的地方开始寻找上下左右分别能够走到的最大步长的。 那么使用暴力的方法竟然leetcode还是给过了。 在这里会发现存在大量的计算冗余的,考虑使用dp的动态规划,利用dp[i][j]来标记在方向上能够移动的最长距离的。 简化算法参考:http://www.cnblogs.com/ 阅读全文
posted @ 2018-09-12 15:59 昔风不止,唯有努力生存 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题意是指在数组中取得出现频率最高的数,然后计算数之间的间隔的。 那么这里可以简单的使用map映射关系来求解的,并且统计出现的次数以及对应的位置关系的。 阅读全文
posted @ 2018-09-12 15:21 昔风不止,唯有努力生存 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 这道题是在一堆高度不同的矩阵直方图中寻找到面积最大的矩阵,那么可以考虑的就是找出序列中高度的局部最大值,然后往左边来寻找可能的面积最大值的。 还有另外一种做法就是维护一个单调栈的,用于保存一个递增序列类似于上述的寻找局部的峰值的,如果要使得面积最大的话就需要使得连续的矩形的高度更高的,由最低的高度来 阅读全文
posted @ 2018-09-12 15:10 昔风不止,唯有努力生存 阅读(102) 评论(0) 推荐(0) 编辑

2018年9月11日

摘要: 完全二叉树是从左边开始一点点填充节点的,因此需要计算所有的节点的个数。 则分别从左边和右边来进行传递的,当左右是完全二叉树的时候,其节点个数就是pow(2,h)-1。 阅读全文
posted @ 2018-09-11 23:56 昔风不止,唯有努力生存 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 寻找最长的路径,那么会在左边或者右边或者是从左到跟然后再到右方的路径的。 阅读全文
posted @ 2018-09-11 23:44 昔风不止,唯有努力生存 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 对于一个数组中的数进行分组,取每个组里的平均值进行加和的。 使用动态规划,其中dp[i][k]表示以i为结尾的有k个分组的,那么递推式为: dp[i][k]=dp[j][k-1]+(sum[i]-sum[j])/(i-j)的,那么当k=1的时候就初始化为组内的平均值的,其中j的初始化为k-2,因为是 阅读全文
posted @ 2018-09-11 23:17 昔风不止,唯有努力生存 阅读(129) 评论(0) 推荐(0) 编辑

导航