- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 力扣周赛407题解
nums = [3,5,1,2], target = [4,6,2,4] 的差分数组是 [1,0,0,1],由于差分数组的性质,前面有+1,后面就要有-1,差分数组是要比原数组多一个位置的,所以+1 和 -1的数量可能对不上。另一种方法就是补出差分数组的多余的位置,nums = [3,5,1,2], target = [4,6,2,4] 的差分数组是 [1,0,0,1,-2]。假设我们进行的+1操作为n,为后面贡献的-1个数也为n,-1操作为m,为后面贡献的+1个数也为m。n为0,小红无法操作,小明胜。
2024-07-27 22:09:16
424
原创 力扣周赛406题解
为了让交换后的数最大要尽可能交换位置靠左的数,设这个数为下标为 i ,与它交换的数 j 应该是 i 右面最大的数,并且这个数要比 i 大。上面的代码内层循环要多次寻找 i 之后的最大值,我们可以提前算出每个区间的最大值来省掉内层循环,代码如下,时间复杂度O( 2 * log n)综上 i 向右枚举,j 向左枚举即可得到下面的代码,时间复杂度为O(log^2 n),log n为这个数的长度。上面的代码节省了时间却消耗了额外的空间,其实可以边枚举 i 边更新 maxindex 来省去记录最大值的数组。
2024-07-18 22:34:53
399
1
空空如也
初学c语言有点问题请大家看一看
2023-11-14
初学c语言有点问题请大家给我看一看
2023-10-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人