关于分治
文章平均质量分 52
youngsea8
喜欢学习!
展开
-
42. 接雨水 分治
题解 执行用时:8 ms, 在所有 C++ 提交中击败了69.41%的用户 内存消耗:13.9 MB, 在所有 C++ 提交中击败了54.33%的用户 分治思路。 首先我们要找到[left,right]中最高的那个柱子的位置记为maxIndex,把它作为last。 什么叫last?我们下面体会一下。 下面我们只需要在[left,maxIndex-1]中找到最高的柱子,位置记为leftIndex,在[maxIndex+1,right]中找到最高的柱子,位置记录为rightIndex,我们这个时候可以res原创 2021-05-26 15:46:37 · 155 阅读 · 0 评论 -
932. 漂亮数组 分治策略,思维题
932. 漂亮数组 分治的思想,怎么解决? 首先一个数组a[]是漂亮数组,代表n个元素1,2,…,n的排列满足 任意的i,j,k,i<k<j, 都不存在2∗a[k]=a[i]+a[j]2*a[k]=a[i]+a[j]2∗a[k]=a[i]+a[j] 首先我们注意到,上面式子的左边必定是偶数,那么如果右边必定是奇数,满足条件。 怎么满足左边必定是偶数,右边必定是奇数,将1,2,3,…,n这n个数字分成两个部分,左边全放奇数,右边全放偶数,这样就可以,这样的话如果i在左边,j在右边,原创 2021-04-21 00:17:30 · 106 阅读 · 0 评论 -
241. 为运算表达式设计优先级
思路 $vector diffWaysToCompute(string expression) $代表表达式可以计算出的所有的值。 那么进行递归运算即可。 其实所有的答案就是卡特兰序列进出栈产生的所有的出栈序列的值。 看了一下没写,原代码[在这](Python/Golang 分治算法 - 为运算表达式设计优先级 - 力扣(LeetCode) (leetcode-cn.com)) 代码 class Solution { public: vector<int> diffWaysToCom原创 2021-04-20 00:09:37 · 67 阅读 · 0 评论