Golang算法之田忌*问题实现方法分析

发布时间 - 2026-01-10 23:07:29    点击率:

本文实例讲述了Golang算法之田忌*问题实现方法。分享给大家供大家参考,具体如下:

【田忌*问题】

输入:

输入有多组测试数据。 每组测试数据包括3行:
第一行输入N(1≤N≤1000),表示马的数量。
第二行有N个整型数字,即渊子的N匹马的速度(数字大表示速度快)。
第三行有N个整型数字,即对手的N匹马的速度。
当N为0时退出。

输出:

若通过聪明的你精心安排,如果能赢得比赛(赢的次数大于比赛总次数的一半),那么输出“YES”。 否则输出“NO”。

样例输入

5
2 3 3 4 5
1 2 3 4 5
4
2 2 1 2
2 2 3 1
0

样例输出

YES
NO

代码实现(Golang):
复制代码 代码如下:package huawei
//Date:2015-8-14 15:43:11
import (
    "fmt"
    "io/ioutil"
    "sort"
    "strings"
)
//思路:用自己最强的(半数+1)个马和对手最弱的(半数+1)个马比赛
func Test11Base() {
    data, err := ioutil.ReadFile("DataFiles/huawei_test11.txt")
    checkError(err, "Reading file")
    strs := strings.Split(string(data), "\n")
    index := 0
    for {
        count := strs[index]
        if count == "0" {
            break
        }
        teamA := convertToIntSlice(strings.Fields(strs[index+1]))
        teamB := convertToIntSlice(strings.Fields(strs[index+2]))
        if canWin(teamA, teamB) {
            fmt.Println("YES")
        } else {
            fmt.Println("NO")
        }
        index += 3
    }
}
//判断teamA是否能够胜利
func canWin(teamA []int, teamB []int) bool {
    sort.Ints(teamA)
    sort.Ints(teamB)
    length := len(teamA)
    tryCount := length/2 + 1
    for i := 0; i < tryCount; i++ {
        //A组最强的一半
        speedA := teamA[length-(tryCount-i)]
        //B组最弱的一半
        speedB := teamB[i]
        if speedA <= speedB {
            return false
        }
    }
    return true
}

希望本文所述对大家Go语言程序设计有所帮助。


# Golang  # 算法  # 田忌赛马问题  # Golang排列组合算法问题之全排列实现方法  # Golang算法问题之整数拆分实现方法分析  # Golang算法问题之数组按指定规则排序的方法分析  # Golang最大递减数算法问题分析  # Golang正整数指定规则排序算法问题分析  # Go语言实现的树形结构数据比较算法实例  # Go语言算法之寻找数组第二大元素的方法  # go语言睡眠排序算法实例分析  # GO语言利用K近邻算法实现小说鉴黄  # golang实现分页算法实例代码  # 匹马  # 最弱  # 整型  # 测试数据  # 样例  # 给大家  # 速度快  # 所述  # 是否能够  # 每组  # 多组  # 第三行  # 讲述了  # huawei  # Date  # package  # len  # length  # span  # import 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何登录建站主机?访问步骤全解析  Bootstrap CSS布局之列表  Android中AutoCompleteTextView自动提示  简历没回改:利用AI润色让你的文字更专业  JS中对数组元素进行增删改移的方法总结  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  教你用AI将一段旋律扩展成一首完整的曲子  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel怎么实现模型属性的自动加密  如何为不同团队 ID 动态生成多个“认领值班”按钮  香港服务器租用费用高吗?如何避免常见误区?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  zabbix利用python脚本发送报警邮件的方法  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  详解Huffman编码算法之Java实现  如何在腾讯云服务器上快速搭建个人网站?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  免费网站制作appp,免费制作app哪个平台好?  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何在腾讯云免费申请建站?  Python面向对象测试方法_mock解析【教程】  nginx修改上传文件大小限制的方法  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  ,南京靠谱的征婚网站?  打造顶配客厅影院,这份100寸电视推荐名单请查收  java ZXing生成二维码及条码实例分享  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  EditPlus 正则表达式 实战(3)  Laravel如何为API生成Swagger或OpenAPI文档  如何用JavaScript实现文本编辑器_光标和选区怎么处理  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何快速上传自定义模板至建站之星?  html5的keygen标签为什么废弃_替代方案说明【解答】  实例解析angularjs的filter过滤器  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  在线教育网站制作平台,山西立德教育官网?  Laravel怎么判断请求类型_Laravel Request isMethod用法