关于分治
文章平均质量分 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 · 181 阅读 · 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 · 118 阅读 · 0 评论 -
241. 为运算表达式设计优先级
思路$vector diffWaysToCompute(string expression) $代表表达式可以计算出的所有的值。那么进行递归运算即可。其实所有的答案就是卡特兰序列进出栈产生的所有的出栈序列的值。看了一下没写,原代码[在这](Python/Golang 分治算法 - 为运算表达式设计优先级 - 力扣(LeetCode) (leetcode-cn.com))代码class Solution {public: vector<int> diffWaysToCom原创 2021-04-20 00:09:37 · 78 阅读 · 0 评论