## 题目二 给定一个数组arr,长度为N>1 从中间切一刀,保证左部分和有部分都有数字,一共有N-1种切法 如此多的切法中,每一种都有: 绝对值(左部分最大值-右部分最大值) 返回最大值的绝对值是多少 方法一 创建两个辅助数组,一个从左往右记录最大值,一个从右往左记录最大值 两个数组一一对应相减 方法二 找出最大值-min(最左,最右) 子数组连续的几个,子序列可不连续的. ## 题目三 定义什么事可整合数组 一个数组排完序之后,除了最左侧的数外,有arr[i]=arr[i-1]+1 则称这个数组为可整合数组 比如{5,1,2,4,3};{6,2,3,1,5,4}都是可整合数组 返回arr中最长可整合数组的长度. 1) 无重复 2) max-min=n-1 ## 题目四 超级水王问题,某个数组中某个数字个数超过一半. 一次删掉两个不同的数,如果有水王则剩下的一定是水王. 遍历剩下的数,看个数是否超过一半. 定义两个数:候选,血量.(同时删除两个) 扩展1.摩尔投票 某个数大于N/k次打印,候选k-1 扩展2.给定一个正数k,返回所有出现次数>N/k的数 arr[l..r]一定要整出k份,合并的最小代价, 返回. ## 题目五 https://leetcode.cn/problems/minimum-cost-to-merge-stones/ 总是多想,立足当下. ## 题目一 给定数组father大小为N,表示一共有N个节点 father[i]=j表示点i的父亲是点j,father表示的树一定是一棵树而不是森林 queries是二维数组,大小为M*2,每一个长度为2的数组都表示一个查询[4,9], 表示想查询4和9之间的最低公共祖先 [3,7]表示想查询3和7之间的最低公共祖先... tree和queries里面的所有值,都一定在0到n-1之间 返回一个数组ans,大小为m,ans[i]表示第i条查询的答案. 树链抛分,21节 难得东西在,年轻的时候学些