田忌赛马

将⻬王和⽥忌的⻢按照战⽃⼒排序,然后按照排名⼀⼀对⽐。如果⽥忌的⻢能赢,那就⽐赛,如果赢不了, 那就换个垫底的来送⼈头,保存实⼒。

复制代码
int n = nums1.length;
sort(nums1); // ⽥忌的⻢
sort(nums2); // ⻬王的⻢
// 从最快的⻢开始⽐
for (int i = n - 1; i >= 0; i--) {
 if (nums1[i] > nums2[i]) {
 // ⽐得过,跟他⽐
 } else {
// ⽐不过,换个垫底的来送⼈头
 }
}
复制代码

 实例,力扣870题:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
func advantageCount(nums1 []int, nums2 []int) []int {
    sort.Ints(nums1)
    p:=make([]pair,len(nums2))
    for i:=0;i<len(nums2);i++{
        p[i].index=i
        p[i].value=nums2[i]
    }
    sort.Sort(pairs(p))
    i,j:=len(nums1)-1,len(nums1)-1
    res:=make([]int,len(nums1))
    count:=0
    for j>-1{
        if nums1[i]>p[j].value{
            res[p[j].index]=nums1[i]
            i--
        }else{
            res[p[j].index]=nums1[count]
            count++
        }
        j--
    }
    return res
}
 
type pair struct{
    index int
    value int
}
 
type pairs []pair
 
func (t pairs) Len() int {
    return len(t)
}
func (t pairs) Swap(i, j int){
    t[i], t[j] = t[j], t[i]
}
func (t pairs) Less(i, j int) bool {
    return t[j].value > t[i].value
}

  

 

posted @   ☞@_@  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
历史上的今天:
2021-03-17 C++学习笔记之模板
2021-03-17 C++学习笔记四之文件操作
点击右上角即可分享
微信分享提示