常见脑洞题

1.出现超过n/2次的数字

超过n/2次,即比所有别的数字出现的数字次数加起来还多
那么我们用一个计数器,选定初始值,遇到
==它的,cnt++,
!=它的,cnt--。
每次cnt = 0时,初始值变为当前值。
最后这个数字即为所求。

2.无序序列转变为有序序列最少需要多少次swap。

(1)可以交换任意两个

寻找循环节个数。
eg.1>3>4>2>5
循环节为:(1,5)(2,3,4)
显然,有一个循环节就少交换一次。
所以答案为n-num(循环节)

(2)只能交换相邻的

ans为逆序数。
考虑到,每swap一次就少一个逆序对,所以答案就是逆序数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容