哔哩哔哩后台笔试AC,
1.单词反转,采用栈,先进后出的特点:
package bilibili; import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String str=""; while (scanner.hasNext()) { str=scanner.nextLine(); String[] strings=str.split(" "); Stack< String> stack=new Stack<>(); for (int i = 0; i < strings.length; i++) { stack.push(strings[i]); } while (!stack.isEmpty()) { System.out.print(stack.pop()+" "); } } scanner.close(); } }3.背包问题,采用标记价值的索引号跟踪
package Maxbag; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int N,M,sum=0,i; while (scanner.hasNext()) { N=scanner.nextInt(); M=scanner.nextInt(); int [] w=new int[N]; int [] v=new int[N]; double [] p=new double[N]; double [][] q=new double[N][N]; for ( i = 0; i < N; i++) { w[i]=scanner.nextInt(); } for ( i = 0; i < N; i++) { v[i]=scanner.nextInt(); } for (i = 0; i < N; i++) { p[i]=v[i]/w[i]; q[i][i]=p[i]; } Arrays.sort(p); int num=N-1; for ( i = 0; i < N; i++) { if (q[i][i]==p[num]) { M-=w[i]; if (M>0) { sum+=v[i]; } if (M<0) { break; } num--; } } System.out.println(sum); } scanner.close(); } }