田忌赛马
将⻬王和⽥忌的⻢按照战⽃⼒排序,然后按照排名⼀⼀对⽐。如果⽥忌的⻢能赢,那就⽐赛,如果赢不了, 那就换个垫底的来送⼈头,保存实⼒。
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 } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源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++学习笔记四之文件操作