百度笔试编程题

投的是 安卓,选择题有些方啊,出的是  计算机组成原理  ,arm体系  x86架构 ,mmp

编程题 一般般

第二个  爬山,用递归

import java.awt.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main1 {


//记录所有走过的结点
public static ArrayList<Integer> list=new ArrayList<>();

public static void main(String[] args) {
System.out.println("Hello World");

Scanner scanner=new Scanner(System.in);

int n=scanner.nextInt();
int m=scanner.nextInt();

int x=scanner.nextInt();
int y=scanner.nextInt();


int a[][]=new int[n][m];

for (int i = 0; i <n; i++) {
for(int j=0;j<m;j++) {
a[i][j]=scanner.nextInt();
}

}

scanner.close();

list.add(a[x-1][y-1]);
countWays(a,n,m,x-1,y-1);


//对所有走过的结点进行排序,取得最大值输出
Collections.sort(list);

System.out.println(list.get(list.size()-1));

}

private static void countWays(int[][] a, int n, int m, int x, int y) {


//判断结点是否符合条件
int l1,l2,l3,l4;
l1=x+1;
l2=x-1;
l3=y+1;
l4=y-1;




//若结点符合条件  则将节点的值加入集合,并递归该节点
if(l3>0&&l3<m) {
if(a[x][l3]>a[x][y]) {

list.add(a[x][l3]);
countWays(a, n, m, x, l3);
}
}

if(l4>0&&l4<m) {
if(a[x][l4]>a[x][y]) {

list.add(a[x][l4]);
countWays(a, n, m, x, l4);
}

}


if(l1>0&&l1<n) {
if(a[l1][y]>a[x][y]) {

list.add(a[l1][y]);
countWays(a, n, m, l1, y);
}

}

if(l2>0&&l2<n) {

if(a[l2][y]>a[x][y]) {

list.add(a[l2][y]);
countWays(a, n, m, l2, y);
}
}





}






}











第三个     ,阴阳师合成 ,x个x星,合成一个x+1星
用动态规划或者递归,
递归代码

public class Main {

public static void main(String[] args) {


System.out.println("hello world");
//输入
Scanner in=new Scanner(System.in);

int n=in.nextInt();

in.close();


n=countWays(n);






System.out.println(n);


}

private static int countWays(int n) {


if(n==2) return 1;

else  return n*countWays(n-1);

}


}

动态规划实现

import java.util.Scanner;

public class Main3 {

    public static void main(String[] args) {
        System.out.println("hello world");
        //输入
        Scanner in=new Scanner(System.in);
        
        int n=in.nextInt();
        
        in.close();
        
        
        int a[]=new int[n+1];
        a[2]=1;
        
        for(int i=3;i<n+1;i++) {
            a[i]=a[i-1]*i;
        }
        
        System.out.println(a[n]);

    }

}



一直卡在80%,  结果超出int 界限了,,想了想  用BigInteger。


第一题有大佬做出来吗?


#春招##笔试题目##实习#
全部评论
阴阳师,一样的代码,0% 눈_눈
点赞 回复 分享
发布于 2018-04-18 22:35
我和你一样移动Android,第二道ace,第三道90%,第一道没思路
点赞 回复 分享
发布于 2018-04-18 23:46
第一道题  是排列组合我也没写出来~~~~~
点赞 回复 分享
发布于 2018-04-19 00:14
请问不同岗位的笔试题一样吗  比如软开 和算法岗 
点赞 回复 分享
发布于 2018-04-19 00:25
第三题卡在80%
点赞 回复 分享
发布于 2018-04-19 08:52

相关推荐

10-29 15:38
门头沟学院 Java
榕城小榕树:难道你简历里写了配送路径优化算法?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务