哔哩哔哩后台笔试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();
		
	}
}


#哔哩哔哩##笔试题目##Java工程师#
全部评论
兄弟,你第一题按理说违规了,要求O(1)空间。
点赞 回复
分享
发布于 2019-08-20 21:32
虽然C很简单,都TM的到它编辑器就通过不了了,本地IDE完全没问题啊
点赞 回复
分享
发布于 2019-08-20 21:24
联易融
校招火热招聘中
官网直投
第一题用不着栈,数组从后向前输出
点赞 回复
分享
发布于 2019-08-20 21:42

相关推荐

点赞 14 评论
分享
牛客网
牛客企业服务