1.8 KiB
题目二
给定一个数组arr,长度为N>1 从中间切一刀,保证左部分和有部分都有数字,一共有N-1种切法 如此多的切法中,每一种都有: 绝对值(左部分最大值-右部分最大值) 返回最大值的绝对值是多少 方法一 创建两个辅助数组,一个从左往右记录最大值,一个从右往左记录最大值 两个数组一一对应相减 方法二 找出最大值-min(最左,最右)
子数组连续的几个,子序列可不连续的.
题目三
定义什么事可整合数组 一个数组排完序之后,除了最左侧的数外,有arr[i]=arr[i-1]+1 则称这个数组为可整合数组 比如{5,1,2,4,3};{6,2,3,1,5,4}都是可整合数组 返回arr中最长可整合数组的长度.
- 无重复
- 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节
难得东西在,年轻的时候学些