科大讯飞08.18【编程】

【记录一下】
第一题:打印倒金字塔
第二题:栈操作进行数字合并。
第三题:区间拓展,一个长度为n的数组,从x位置出发,初始区间是[x,x],可以向左或向右拓展,得分即区间内元素的和,但是要求只有在要拓展的元素比当前得分大的时候才可以拓展。出来之后看大家的提示才知道是dfs。
```java
public class Solution {
    public int[] findMax(int[] arr){
        int[] res = new int[arr.length];
        for(int i = 0; i < arr.length; i++){
            res[i] = dfs(arr, i, 0);
        }
        return res;
    }

    public int dfs(int[] arr, int s, int sum){
        // arr从s位置开始扩展能获得的最大得分
        if(s < 0 || s >= arr.length)    return sum;
        sum += arr[s];
        int left = sum, right = sum;
        if(s > 0 &amp;&amp; arr[s - 1] > sum){
            left = dfs(arr, s - 1, sum);
        }
        if(s < arr.length - 1 &amp;&amp; arr[s + 1] > sum){
            right = dfs(arr, s + 1, sum);
        }
        return Math.max(left, right);
    }
}
```
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务