网易实习笔试

网易笔试第一题,  矩阵中有一些工厂产生污染, 求离污染最远的地方. 曼哈顿距离
第二题, 求数组中一个子集,sum最大同时被6整除.
第三题, 给 T,   给不定长的输入,(这里我为了排序用pripority  ) 求最接近T的
   public static void main(String[] args) {
    	Scanner in = new Scanner(System.in);
    	int T = Integer.parseInt(in.nextLine());
    	int y = Integer.parseInt(in.nextLine());
    	System.out.println(T +y);
    	String [] ss = new String[10010];
    	String s = in.nextLine();
    	ss =  s.split(" ");
    	System.out.println(ss[0]);
    	Vector<Integer> vt = new Vector<Integer>() ;//怎么是一个有序数组???
    	PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
    	for(int i = 0 ; i < ss.length; i ++) {
    		pq.add(Integer.parseInt(ss[i]));
    	}
    	System.out.print(pq.peek());
    	//怎么遍历啊!!!遍历一个有序数组
    	while(!pq.isEmpty()) {    		//find closest num
    		vt.add(pq.poll());// 获得一个有序数组
    	}
    	int i = 0 ;
    	for(;i< vt.size() && vt.indexOf(i) < T;i++){    	}
    	//找到最接近的大一点点.
    	int closest;
    	if(i == vt.size()) {
  		  closest  = Integer.MAX_VALUE;// all smaller than T,那就照常处理
    	}	
    	else {
    		closest = vt.elementAt(i);
		}
    	if(closest == T) {
    		System.out.print(T-y);
    		return;
    	}
    	boolean flag = false;
    	for(int j = i-1; j> 0 ; j -- ) {
    		// j一定小于T
    		int temp = vt.elementAt(j);//之前也写indexof了 
    		for(int k = j ;k > 0 ; k --) {
    			temp  += vt.elementAt(k)  ;//从最大开始加
    			if(temp >=T) {
    				if(temp  < closest ) {
    					closest = temp;
    				}//更新closest
    				temp -= vt.elementAt(k);
    			}
    		}
    	}
    	System.out.print(T-y);
    	in.close();
}
不定长怎么办?
但是因为sc.nextInt()方法只读取空白符前面的值,会把空白符继续留在缓存区,而sc.nextLine()会把空白符也读取并清除,所以每次用完sc.nextInt()方法最好在后面加个sc.nextLine(),但最好舍弃这个方法,每行都采用sc.nextLine()方法读取。【在这里两个方法混用,提交代码的时候很容易经常出现数组越界的问题】
    while(cin>>a){
        sum=0;
        sum+=a;
        while(cin.get()!='\n'){
            cin>>a;
            sum+=a;        
        }
        cout<<sum<<endl;
    }
  while(scanner.hasNext()){
            String s = scanner.nextLine();
            String[] array = s.split(" ");
            int sum = 0;
            for(int i = 0; i < array.length; i++){
                sum += Integer.parseInt(array[i]);
            }
            System.out.println(sum);
        }
或者python
#不确定输入有多少行,用while循环
import sys
seq = [ ]
while True:
    line = sys.stdin.readline().strip()     #line此时是字符串列表,并已去掉前后空格 回车符
    if line:
        line = map(int,line.split()) #把line的空格元素去掉,转成字符串列表list,并转成整型int
    else:
        break
    seq += line
print(seq)



笔试第四题
给[a, b] 求范围中是回文数同时又 是回文数的三次方的数.
public class Main {

    public static void main(String[] args) {
    	Scanner in = new Scanner(System.in);
    	String start  = in.nextLine();
    	String end = in.nextLine();
    	//Set<Integer> huiwen  = new HashSet<Integer>();
    	int s = Integer.parseInt(start);
    	int e =  Integer.parseInt(end);// 三次方想不到啊 !!
    	//找到所有三次方可能在范围中的数.
    	if(huiwen("9"))
    //		System.out.println("111");
    	System.out.print("[");
    	int count = -1 ;
    	for(int i = 1 ; i <= Math.sqrt(e) ;i++ ) {
    		if(huiwen(String.valueOf(i) ) ) {
    			//huiwen.add(i);
    			int j = i*i*i;
    			if( j<= e && j >= s && huiwen(String.valueOf(j))) { 
    				count++;
    				if(count == 0)
    					System.out.print(j);// 到底怎么输出啊!!
    				else 
    					System.out.print(","+j);
    			}
    		}
    	}
    	System.out.print("]");
    	in.close();
    	//        Scanner in = new Scanner(System.in);
//        Vector<Integer> id  = new Vector<Integer>();//不能用int
//        Vector<String> old  = new Vector<String>();//不能用int
//        String line1  = in.nextLine();
//        for(int i = 0 ; i < line1.length(); ) {
//        	String c = line1.substring(i,i+1);
//        	id.add( Integer.parseInt(c));
        }
    	private static boolean huiwen(String str){
        if(str.isEmpty()) return false;
        int slow = 0,fast = str.length();
        //if first = last
        while(slow <= fast){
           // System.out.println(str.indexOf(slow)); 
            if(str.indexOf(slow) == str.indexOf(fast)){
                slow++;//应该是charAt 我写错了写indexOF了, 好多都写成indexof了
                fast --;
            }
            else{
                return false;
            }
        }
        return true;
    }
        
}





#笔试题目##网易#
全部评论
第二题01背包
点赞 回复 分享
发布于 2021-04-03 11:51
我不明白为啥第四题只能过20%  我今天刷了刷回溯,应该对第二题有帮助
点赞 回复 分享
发布于 2021-03-28 20:22
string就是charat 有的是elementat
点赞 回复 分享
发布于 2021-03-28 00:58
用arraylist就可以了
点赞 回复 分享
发布于 2021-03-28 00:55

相关推荐

头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务