学生方阵

学校组织活动,将学生排成一个矩形方阵。请在矩形方证中找到最大的位置相连的男生数量。

这个相连位置在一个直线上,方向可以是水平的,垂直的、呈对角线的或着反对角线的。

注:学生个数不会超过10000

输入描述:

输入的第一行为矩形的行数和列数,接下来的n行为矩阵元素,元素间用“,”分隔

输出描述:

输出一个整数,表示矩阵中最长的位置相连的男生个数。

备注:

示例1:

输入:

3,4

F,M,M,F

F,M,M,F

F,F,F,M

输出 3

// female/male ???这题应该是这个意思 M就是男吧 反对角线咋算,求大神指点
let n = 3
let k = 4
let maxLen = 0
let arr = [
    ['F','M','M','F'],
    ['F','M','M','F'],
    ['M','M','F','M']
]
// 横的
for(let i of arr){
    maxLen = Math.max(sameArr(i),maxLen)
}
// // 竖的
let nums  = arr[0].length
for(let j=0;j<nums;j++){
    let newArr = []
    for(let i of arr){
        newArr.push(i[j])
    }
    maxLen = Math.max(sameArr(newArr),maxLen)
}
// 对角
let record = new Map()
for(let i=0;i<arr.length;i++){
    for(let j=0;j<nums;j++){
        let key = j+i
        if (!record.has(key)){
            record.set(key, [])
        }
        record.get(key).push(arr[i][j])
    }
}
for(let [i,nums] of record.entries()){
    maxLen = Math.max(sameArr([...nums]),maxLen)
}
console.log(maxLen)
//计算一维数组男生相连最大值
function sameArr(arr){
    let maxLen = 0
    let left = 0
    let right = 0
    while (right<arr.length) {
        right++
        if(arr[left]===arr[right] && arr[right] === 'M'){
            maxLen = Math.max(right - left + 1,maxLen)
        }else {
            left = right
        }
    }
    return maxLen
}
机试题 文章被收录于专栏

某机试题,网上很少用js写的答案只有自己写了

全部评论
直接穷举法:https://gitee.com/yuubai/yubai-study/blob/master/2022.06/OD-test-200/%E5%AD%A6%E7%94%9F%E6%96%B9%E9%98%B5.js
点赞 回复 分享
发布于 2022-06-19 20:17
反对角线就是从左下到右上吧
点赞 回复 分享
发布于 2022-06-19 18:27

相关推荐

10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享
来,说点可能被同行“骂”的大实话。🙊当初接数字马力Offer时,朋友都说:“蚂蚁的“内包”公司?你想清楚啊!”但入职快一年后的今天,我反而对他有了不一样的看法!🔹&nbsp;是偏见?还是信息差!之前没入职之前外面都在说什么岗位低人一等这类。实际上:这种情况不可至否,不能保证每个团队都是其乐融融。但我在的部门以及我了解的周边同事都还是十分好相处的~和蚂蚁师兄师姐之间也经常开一些小玩笑。总之:身份是蚂蚁公司给的,地位是自己挣的(一个傲娇女孩的自述)。🔹&nbsp;待遇?玩的就是真实!试用期工资全额发!六点下班跑得快(早9晚6或者早10晚7,动态打卡),公积金顶格交。别听那些画饼的,到手的钱和下班的时间才是真的(都是牛马何必难为牛马)。🔹&nbsp;能不能学到技术?来了就“后悔”!我们拥有权限直通蚂蚁知识库,技术栈多到学不完。说“学不到东西”的人,来了可能后悔——后悔来晚了(哈哈哈哈,可以不学但是不能没有)!💥&nbsp;内推地址:https://app.mokahr.com/su/ueoyhg❗我的内推码:NTA6Nvs走我的内推,可以直达业务部门,面试流程更快速,进度可查!今天新放HC,之前挂过也能再战!秋招已经正式开始啦~机会就摆在这,敢不敢来试一试呢?(和我一样,做个勇敢的女孩)
下午吃泡馍:数字马力的薪资一般哇,5年经验的java/测试就给人一万出头,而且刚入职第三天就让人出差,而且是出半年
帮你内推|数字马力 校招
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务