逆序的一个题目

https://leetcode.com/problems/count-of-smaller-numbers-after-self/?tab=Description

这道题目,比求出整体逆序个数,更多一个,是求出每一个位置的逆序个数。

 

这是根据MergeSort的常规解法:

https://discuss.leetcode.com/topic/31162/mergesort-solution

只不过排序的时候,是反过来的。是从尾部开始放置,然后每个元素放置到尾部的时候,记录下跨过了多少位置。

 

这是另一种,根据树状结构的:

https://discuss.leetcode.com/topic/31405/9ms-short-java-bst-solution-get-answer-when-building-bst

 

另外,逆序的求法,可以看下面的:

http://blog.csdn.net/dlengong/article/details/7594919

关键有几点:

1. 

基本框架:

  1. MergeSort(array,first,med);  
  2.     MergeSort(array,med+1,last);  
  3.     Merge(array,first,med,last);  

然后在Merge里面计算逆序个数。

 

2.

Merge的时候,需要使用一个新的数组来放置合并的元素。

 

posted @   blcblc  阅读(181)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示