数学 - wenzhoullq/leetcode GitHub Wiki

容斥

2513. 最小化两个数组中的最大值

哈希表维护最值

一般问你最值的话,而且不涉及多个比较的话,用map(不会用treeSet)的,只用维护最值即可,然后更新最值

题目

6226. 摧毁一系列目标

6221. 最流行的视频创作者

a+c*mod c是任意非负数

如果是一组的话,nums[i]%mod后结果相同

题目

6226. 摧毁一系列目标

辗转相除

数字特征是1e9,从尾到头考虑,然后一般用大的取小的数的余数,

while(满足条件,不含=){
小对大取余数辗转相除
}
if(不满足) return ;
return 是否满足;

题目

780. 到达终点

乘法原理

题目

2147. 分隔长廊的方案数

gcd

   int gcd(int a, int b){
   return a%b==0?b:gcd(b,a%b);
    }

题目

858. 镜面反射

1819. 序列中不同最大公约数的数目 求子序列的最大公约数就是枚举公约数,然后看它是否构成这个子序列的最大公约数(如何判断为最大公约数?设公约数为a;b,c,d为代求的数,如果b/a 和 c/a 和d/a有非1的公约数的话,那么a不是b,c,d的最大公约数

其他

不好归类,先放置其他列表

题目

343. 整数拆分 每段取3时最大,剩余4的时候直接取4

856. 括号的分数 ()是1,其他的都是乘法结合律

1675. 数组的最小偏移量 奇数×2可以变成偶数,但是偶数可以变成奇数,因此所有奇数先×2

数论

题目

829. 连续整数求和 (等差公式)

绝对值

拆除绝对值的时候有±两种情况

题目

1131. 绝对值表达式的最大值

v[i],i,v[j],j,i<j

反方向遍历,取将v[i]和i并到一起

题目

1814. 统计一个数组中好对子的数目

1014. 最佳观光组合

6142. 统计坏数对的数目

坐标

帕累托解

一个坐标按降序排序,排序后比较另一个坐标是否大于这个坐标

题目

字节跳动2018

中位数

O(1)

两个优先队列,中位数下标为(len1+len2+1)/2

题目

295. 数据流的中位数

聚拢最小

将数据聚拢的时候,以中位数为中枢聚拢最快;如果是环的话,还要破环成链

  • 曼哈顿距离

找一个距离点到所有的距离最小,二维的话就排两次,以中位数为中心聚拢

  • 聚集

类似于曼哈顿距离,但是一个位置只能占一个坑,因此需要进行再次处理,排序后再次每个数字-i

题目

  • 曼哈顿距离

104. 货仓选址

快递中转站选址

  • 聚拢

123. 士兵

[字节跳动七月模拟T4]

小W是一名教师,在某次授课时,它将教室中的m个座位围成了一个圈,并按顺时针顺序编号1~m,共有n个学生自由地选择了自己的位置,但是小W认为他们坐的过于分散了,于是小W决定让学生们能够调整自己的位置,使得他们的位置能够连续,同时,为了避免学生们的不满情绪,小W希望学生们的总移动距离能够最小(设当前座位编号为x,最终座位编号为y,则移动距离定义为min(ly-x,m-ly-x)。小W的数学并不好,所以希望你能帮助他求出这个最小总移动距离。
第一行输入两个正整数n,m(1<=n<=2x10^5, n<=m<=10^9),分别代表学生数量和座位数量。

最小值

模板

      Arrays.sort(nums);
     for(;);//求sum
     根据题意寻找target

分析

数学推理类出现关键词最小值,考虑数学分析,这个最小值,肯定和数组中的某个值相关,通过sum来求,并且一般都会进行排序

453. 最小操作次数使数组元素相等

2171. 拿出最少数目的魔法豆

逻辑思维

最少反转次数 res=min(错排段数,2)

1015. 可被 K 整除的最小整数 以1结尾的不能被除数%5==0和除数%2==0的整除,注意对余数的处理

1798. 你能构造出连续值的最大数目

斜率

求三点的斜率,算出他们的长和高,分别为h1,h2,w1,w2 h1w2==h2w1的话说明斜率相等,如果用除法的话会出现精度问题

题目

149. 直线上最多的点数

2280. 表示一个折线图的最少线段数

计算面积

面积=area1-重合+area2;如果重合部分没有直接返回 area1+area2

题目

223. 矩形面积

定理公式

最短非子序列

划分若干区间,区间内填满(HashSet)

题目

6131. 不可能得到的最短骰子序列

偏序集

非严格最长上升子序列的长度=非严格最短下降子序列的个数,反之同理

导弹拦截

循环递归

递归到目标值退出,可以是Hash记录

166. 分数到小数

202. 快乐数

231. 2 的幂

258. 各位相加

质数

求质数最基本的是埃氏筛

题目

204. 计数质数

866. 回文素数 (当数据长度为8的时候不存在质数)

2523. 范围内最接近的两个质数

  • 丑数 丑数的本质是用一个数轮询的去乘对应的数字集合,选取最小的数作为下一个丑数,在轮询相乘的时候会出现重复的数字,因此需要去重

263. 丑数

264. 丑数 II多路复用埃氏筛

313. 超级丑数

  • 贝祖定理

gcd(a,b) = d ,则 ax+by==nd a,b,n是任意的整数

365. 水壶问题

1250. 检查「好数组」

摩尔投票

题目

169. 多数元素

229. 多数元素 II