cs从入门到放弃 level
获赞
104
粉丝
2
关注
14
看过 TA
94
大连理工大学
2025
Java
IP属地:辽宁
暂未填写个人简介
私信
关注
【记录一下】第一题:打印倒金字塔第二题:栈操作进行数字合并。第三题:区间拓展,一个长度为n的数组,从x位置出发,初始区间是[x,x],可以向左或向右拓展,得分即区间内元素的和,但是要求只有在要拓展的元素比当前得分大的时候才可以拓展。出来之后看大家的提示才知道是dfs。```javapublic 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 && arr[s - 1] > sum){            left = dfs(arr, s - 1, sum);        }        if(s < arr.length - 1 && arr[s + 1] > sum){            right = dfs(arr, s + 1, sum);        }        return Math.max(left, right);    }}```
查看3道真题和解析 投递科大讯飞等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务