2021.08.07 奇安信笔试经验

40分的单选+20分的多选
上述选择题都是一些基础知识+读代码选择题,大家的得分率大概都差不多
40分手撕代码 两道题 都很简单 我的完成度 100% 100% 下面是代码
第一题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param height int整型vector 舞蹈员身高的一维数组
     * @return int整型
     */
    int TeamNums(vector<int>& height) {
        int n=height.size(), res=0;
        for(int j=0;j<n;j++)
            for(int k=j+1;k<n;k++)
                for(int l=k+1;l<n;l++){
                    if(height[j]>height[k] && height[k]>height[l])
                        res++;
                    if(height[j]<height[k] && height[k]<height[l])
                        res++;
                }
        return res;
    }
};
第二题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param grid int整型vector<vector<>> 为n*m 的二维数组
     * @return int整型
     */
    int getMaximumResource(vector<vector<int> >& grid) {
        int max=0, tmp=0, row=grid.size(), col=0;
        if(row>0)
            col=grid[0].size();
        for(int i=0;i<row;i++)
            for(int j=0;j<col;j++){
                if(grid[i][j]!=0)
                    tmp=judge(grid, i, j, row, col);
                if(tmp>max)
                    max=tmp;
            }
        return max;
    }
    int judge(vector<vector<int> >& grid, int& i, int& j, int& row, int& col){
        int left=j-1, right=j+1, up=i-1, down=i+1;
        int res_current_1=0, res_current_2=0, res_current_3=0, res_current_4=0;
        if((left<0 || grid[i][left]==0) && 
           (right>=col || grid[i][right]==0) && 
           (up<0 || grid[up][j]==0) && 
           (down>=row || grid[down][j]==0))
            return grid[i][j];
        int tmp=grid[i][j];
        grid[i][j]=0;
        if(left>=0 && grid[i][left]!=0)
            res_current_1=tmp+judge(grid, i, left, row, col);
        if(right<col && grid[i][right]!=0)
            res_current_2=tmp+judge(grid, i, right, row, col);
        if(up>=0 && grid[up][j]!=0)
            res_current_3=tmp+judge(grid, up, j, row, col);
        if(down<row && grid[down][j]!=0)
            res_current_4=tmp+judge(grid, down, j, row, col);
        grid[i][j]=tmp;
        int max=0;
        max=res_current_1;
        if(res_current_2>max)
            max=res_current_2;
        if(res_current_3>max)
            max=res_current_3;
        if(res_current_4>max)
            max=res_current_4;
        return max;            
    }
};



#奇安信##笔经#
全部评论
楼主请问你是在哪投的,投的什么岗位,我投了很久没有回信
点赞 回复 分享
发布于 2021-08-07 19:21
啥岗位?
点赞 回复 分享
发布于 2021-08-07 17:43
楼主,这个第二种方法也挺简单的 https://www.nowcoder.com/discuss/700494
点赞 回复 分享
发布于 2021-08-07 17:14

相关推荐

佛系的本杰明反对画饼:个人看法,实习经历那段是败笔,可以删掉,它和你目标岗位没什么关系,没有用到什么专业技能,甚至会降低你项目经历内容的可信度。个人技能那里可以再多写一点,去boss直聘上看别人写的岗位要求,可以把你会的整合一下,比如熟悉常规的开关电源拓扑结构(BUCK、正激、反激、LLC等),熟悉常用的通信总线协议和通信接口,如UART,IIC,SPI等。简历首先是HR看的,HR大多不懂技术,会从简历里去找关键字,你没有那些关键字他可能就把你筛掉了,所以个人技能尽量针对着岗位描述写一下。还有电赛获佳绩,获奖了就写什么奖,没获奖就把获佳绩删了吧,要不会让人感觉夸大。
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客企业服务