0914同程笔试

第一道买卖股票的最佳时机2好像是,********贪心的那道
第二道只过了50%,应该是用visited数组,递归撤销visited不符合,debug半天,很迷,有a了的大佬指指路吗?
int res = Integer.MAX_VALUE; public  int minJumps (int[] arr) {
        // write code here
        boolean[] visited = new boolean[arr.length];
        backtrack(arr,0,0,visited);
        return res;
    }
    public void backtrack(int[] arr,int start,int step,boolean[] visited){
        if(start == arr.length - 1){
            res = Math.min(res,step);
        }
        if(start < 0 || start > arr.length - 1 || visited[start]){
            return;
        }
        visited[start] = true;
        backtrack(arr,start - 1,step++,visited);
        for(int i = start;i < arr.length;i++){
            if(arr[i] == arr[start] && i != start){
                backtrack(arr,i,step++,visited);
            }
        }
        backtrack(arr,start + 1,step++,visited);
    }


#同程旅行#
全部评论
确实,第二题我想简单了,就不是这么做,是力,扣,跳跃游戏4,bfs hard的难度,远不是回溯那么简单
1 回复 分享
发布于 2022-09-14 21:30 河南
数开岗没有算法题,是两道问答题
点赞 回复 分享
发布于 2022-09-14 20:44 广西
第二题就两个测试用例,我直接 if (arr[0] == 100) {      return 3; } return 1; 就100%了,但是估计后面复查的时候过不了
点赞 回复 分享
发布于 2022-09-14 21:11 四川
我是动态规划做的,先填充dp为arr长度,然后根据每个情况给他迭代更新,但是有可能更新后他变小了(i-1)更新时,但已经遍历过了,所以没更新相同的情况,所以这里要更新一下(后面的值与当前值相同),不更新过50%,更新了ac。
点赞 回复 分享
发布于 2022-09-14 22:41 四川
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-16 11:08 北京

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
2
4
分享
牛客网
牛客企业服务