首页 > 21届科大讯飞正常批研发卷8月29日
头像
进击的岸
编辑于 2020-08-29 21:13
+ 关注

21届科大讯飞正常批研发卷8月29日

礼物价值最大化(AC)

DFS并判断大小即可
public class Solution {

	/* @Description:(方法功能描述)
	* @param args(展示方法参数和返回值)
	*/
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
        while (in.hasNext()) {// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例
            String mn=in.next();
            String[] arr=mn.split(",");
            int m=Integer.valueOf(arr[0]);
            int n=Integer.valueOf(arr[1]);
            int[][]map=new int[m][n];
            for(int i=0;i<m;i++){
                for(int j=0;j<n;j++){
                    map[i][j]=in.nextInt();
                }
            }
            System.out.println(go(map,0,0));
        }
//        }
	}
	public  static int  go(int [][]map,int r,int c){
        int rLen=map.length;
        int cLen=map[0].length;
        if(r==rLen-1&&c==cLen-1)
            return map[r][c];
        
        
        int right=0,down=0;
        if(r+1<rLen){
            right=go(map,r+1,c)+map[r][c];
        }
        
        if(c+1<cLen){
            down=go(map,r,c+1)+map[r][c];
        }
        
        return Math.max(right,down);
    }
}

排序(AC)

这个是选择排序吧
代码略;直接AC了没调试

字符串过滤(40%)

思路是去去前后,再去中间;
去中间多余下划线的思路是遇到非下划线重置一个计数器即可,为2则去除,并对当前下标加一,计数器设回1
public class Solution {

	/* @Description:(方法功能描述)
	* @param args(展示方法参数和返回值)
	*/
	public static void main(String[] args) {
        Scanner in = new Scanner(System.in);// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例
            String str="__afas _";
            System.out.println(result(str));
        
    }
	public static String result(String str) {
		int len=str.length();
		if(len==0)return str;
		int left=0;
		int right=len-1;
		
		int count=0;
		while(left<len&&str.charAt(left)=='_') {
			left++;
		}
		if(left==len)return "";
		while(right>=0&&str.charAt(right)=='_') {
			right--;
		}
		str=str.substring(left, right+1);
		run(str);
		return str;
	}
	public static void run(String str) {
		int count=0;
		int i=0;
		String temp;
		while(i<str.length()) {
			if(str.charAt(i)!='_')count=0;
			else {
				count++;
			}
			if(count==2) {
				temp=str.substring(0, i);
				str=temp+str.substring(i+1, str.length());
				count--;
			}else
				i++;
		}
	}

}
有没有兄弟过了呀,告知一下感谢;

分解质因数(AC)

蛮力法
public class Solution {

	/* @Description:(方法功能描述)
	* @param args(展示方法参数和返回值)
	*/
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println(devideNum(11));
	}
	public static String devideNum(long num){
        if(isZhi(num))return String.valueOf(num);
        String res="";
        for(int i=2;i<num;i++){
            if(isZhi(i)&&num%i==0) {
                res=i+"*"+devideNum(num/i);
                break;
            }
        }
        return res;
        
    }
    public static boolean isZhi(long num){
        if(num>=2&&num<=3)return true;
        for(long i=2;i<num;i++){
            if(num%i==0)return false;
        }
        return true;
    }
}



不知道有没有范围的设置,我直接long过的;

求面试机会,求offer

兄弟们,讨论一下呗!!!!!


全部评论

(6) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐