寻找数组的错位排列

在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列。给定一个从  1  到  n  升序排列的数组,你可以计算出总共有多少个不同的错位排列吗?由于答案可能非常大,你只需要将答案对  1000000007  取余输出即可。样例  1:        输入:  3   

#leetcode   #数学   #算法   #取余   #中等   #动态规划  

可能的二分法

给定一组  N  人(编号为  1,  2,  ...,  N),  我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果  dislikes[i]  =  [a,  b],表示不允许将编号为  a  和  b  的人归入同一组。当可以用这种方法将所有人

#leetcode   #算法   #贪心   #中等   #图遍历   #深度优先   #广度优先  

根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组  people  表示队列中一些人的属性(不一定按顺序)。每个  people[i]  =  [hi,  ki]  表示第  i  个人的身高为  hi  ,前面  正好  有  ki  个身高大于或等于  hi  的人。请你重新构造并返回输入数组  peo

#leetcode   #算法   #贪心   #中等  

最佳观光组合

给定正整数数组  A,A[i]  表示第  i  个观光景点的评分,并且两个景点  i  和  j  之间的距离为  j  -  i。一对景点(i  <  j)组成的观光组合的得分为(A[i]  +  A[j]  +  i  -  j):        景点的评分之和减去它们两者之间的距离。返

#leetcode   #算法   #中等   #动态规划  

秋叶收藏集

小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集  leaves,字符串  leaves  仅包含小写字符  r  和  y,  其中字符  r  表示一片红叶,字符  y  表示一片黄叶。出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部

#leetcode   #算法   #中等   #动态规划  

顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例  1:        输入:matrix  =  [[1,2,3],[4,5,6],[7,8,9]]        输出:[1,2,3,6,9,8,7,4,5]示例  2:        输入:matrix  =  [[1,2,3,

#leetcode   #算法   #中等