腾讯4.26研发笔试疑问
有没有大佬来帮忙指点指点
第一题很有把握的一道题最后却是0通过,想破脑袋也不知道哪里错了
第一题很有把握的一道题最后却是0通过,想破脑袋也不知道哪里错了
import java.util.Scanner; public class 实现队列以及基本操作 { public static class ArrayToQueue { public Integer[] arr; public int size; public int start; public int end; // 初始化队列 public ArrayToQueue(int initSize) { if (initSize < 0) { } arr = new Integer[initSize]; size = 0; start = 0; end = 0; } // 向队列中放入一个数 public void push(int obj) { if (size == arr.length) { System.out.println("-1"); } size++; // 该数放在 end 的位置上,因为 end 位置是上下移动的; arr[end] = obj; // end 如果到底即 Length-1,就等于 0,从头开始写入数据,可以覆盖之前的元素;如果没有到底就 end + 1; end = (end == arr.length - 1) ? 0 : end + 1; // if(end==arr.length-1) // end=0; // else end++; } // 弹出队列头部元素 public Integer pop() { if (size == 0) { System.out.println("-1"); } size--; // 因为 start 位置要改变,所有使用临时变量 tmp 记录一下 start 位置,最终弹出的是原始 start 位置元素; int tmp = start; start = (start == arr.length - 1) ? 0 : start + 1; // if(start == arr.length - 1) // start=0; // else ++start; return arr[tmp]; } // 取出队列头部的元素,但是队列不动 public int peek() { if (size == 0) { System.out.println("-1"); } return arr[start]; } // public void clear() { //自定义的 arr = new Integer[999999]; size = 0; start = 0; end = 0; } } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int T=Integer.valueOf(scanner.nextLine()); for(int i=0;i<T;++i) { int n=Integer.valueOf(scanner.nextLine()); ArrayToQueue arrayToQueue=new ArrayToQueue(999999); for(int j=0;j<n;++j) { String op=scanner.nextLine(); if(op.startsWith("PUSH")) { String[] ops=op.split(" "); int obj=Integer.valueOf(ops[1]); arrayToQueue.push(obj); } else if(op.equals("TOP")) { System.out.println(arrayToQueue.peek()); } else if(op.equals("POP")) { Integer ii=arrayToQueue.pop(); } else if(op.equals("SIZE")) { System.out.println(arrayToQueue.size); } else if(op.equals("CLEAR")) { arrayToQueue.clear(); } else { System.out.println("-1"); } } } } }
求最短距离的暴力ac也是0,我哭了
import java.util.ArrayList; import java.util.Scanner; public class 腾讯3 { static class point { public int a; public int b; public point(int a,int b) { this.a=a; this.b=b; } } public static double calu(point p1,point p2) { return Math.sqrt((p1.a-p2.a)*(p1.a-p2.a)+(p1.b-p2.b)*(p1.b-p2.b)); } public static void main(String[] args) { ArrayList<point> arrayLista=new ArrayList<point>(); ArrayList<point> arrayListb=new ArrayList<point>(); Scanner scanner=new Scanner(System.in); // int T=Integer.valueOf(scanner.nextLine());\ int T=scanner.nextInt(); for(int i=0;i<T;++i) { // int n=Integer.valueOf(scanner.nextLine()); int n=scanner.nextInt(); for(int j=0;j<n;++j) { int a=scanner.nextInt(); int b=scanner.nextInt(); arrayLista.add(new point(a,b)); } double min=99999999.999; for(int j=0;j<n;++j) { int a=scanner.nextInt(); int b=scanner.nextInt(); point p=new point(a,b); arrayListb.add(p); for(point pp:arrayLista) { double length=calu(p,pp); if(length<min) min=length; } } String double_str=String.format("%.3f",min); System.out.println(Double.valueOf(double_str)); } } }#笔试题目##腾讯#