滴滴秋储笔试(2022年06月11日)

编程题

1) 给定一个数组,可以将任意一个数字标记为红色或者蓝色,使得所有红色数字递增,蓝色数字递减;
判断是否可以将所有数字都染色
例子:
输入: 
7 4 1 3 2 5 6
输出
Yes
解释

7 4 3 标记为蓝色 为降序
1 2 5 6 标记为红色 为升序
代码
boolean isIllegal(int[] values) {
    // 让第一个数字为降序或者升序的一部分,进行dfs搜索
    return dfs(values, 1, values[0], Integer.MAX_VALUE) || dfs(values, 1, Integer.MIN_VALUE, values[0]);
}

/**
* @param values
* @param index 当前搜索的数字
* @param preLower 升序序列的末尾
* @param preHigher 降序序列的末尾
* @return
*/
boolean dfs(int[] values, int index, int preLower, int preHigher) {
    if (index >= values.length) return true;
    // values[index] 作为升序序列的一部分
    if (values[index] > preLower && dfs(values, index + 1, values[index], preHigher)) {
        return true;
    }
    // values[index] 作为降序序列的一部分
    if (values[index] < preHigher && dfs(values, index + 1, preLower, values[index])) {
        return true;
    }
    // 都不行,返回false
    return false;
}

#滴滴笔试#
全部评论
老哥,能帮我看一下,我这样写的dfs,问题出在哪吗?感觉思路和你差不多,但是只过了18%~😥
1 回复 分享
发布于 2022-06-11 22:15

相关推荐

03-11 10:06
已编辑
河南师范大学 C++
点赞 评论 收藏
分享
群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
评论
9
17
分享

创作者周榜

更多
牛客网
牛客企业服务