礼物价值最大化(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) 回帖