快手一面面经

快手一面

自我介绍

谈谈对微服务架构的理解

服务注册配置用的什么

服务注册为什么用的Ncos去做,为什么不用其他的做

springboot和springcloud的区别关系(答的太范了)

synchronized与ReentrantLock的区别 (没答好,范)

synchronized锁的升级过程

垃圾回收算法

CMS垃圾回收器

concurrenthashmap怎么实现线程安全的

MySQL的数据结构

聚主索引与非聚主索引的区别

说说ACID

算法题

行星相撞,用[-3,4,5,2,-3,2,5,-7,3,-9,3,-12,9]代表行星,正号代表向右走,负号代表向左走,他们的速度都相同,他们都开始走,相撞的时候,大的与小的相撞,小的破碎,相同大小相撞都破碎,最后剩下那些行星

例如[-3,4,5,2,-3,2,5,-7,3,-9,3,-12,9]

结果[-3,-7,-9,-12,9]

//一面快手算法题
public class kuaishou {
    //Leetcode原题
    // 735\. 行星碰撞
    //用栈来解决
    class Solution {
        public int[] asteroidCollision(int[] asteroids) {
            LinkedList linkedList = new LinkedList();
            for (int asteroid : asteroids) {
                if (linkedList.size() == 0) {
                    linkedList.add(asteroid);
                } else {
                    if (asteroid < 0) {
                        //只有i这个新的行星是向左移动,top的行星是向右移动的才会发生碰撞
                        while (linkedList.size() > 0 && linkedList.peekLast() > 0) {
                            //需要判断碰撞的情况,有三种
                            //第一种i比top的大,top出栈,i继续撞,但是如果栈里面没有行星了就跳出循环
                            if (-asteroid > linkedList.peekLast()) {
                                linkedList.removeLast();
                            } else {
                                //第二种i和top一样大,i出栈,top也不入栈,出循环
                                //第三种,i比top小
                                break;
                            }
                        }
                        //判断跳出循环的原因
                        if (linkedList.size() == 0 || linkedList.peekLast() < 0) {
                            linkedList.add(asteroid);
                        } else if (linkedList.peekLast() == -asteroid) {
                            linkedList.removeLast();
                        }
                    } else {
                        linkedList.add(asteroid);
                    }

                }
            }
            int[] ints = new int[linkedList.size()];
            for (int i = 0; i < ints.length; i++) {
                ints[i] = linkedList.get(i);
            }
            return ints;
        }
    }
#快手春招##实习##面经##春招##Java#
全部评论
行星碰撞!我怀疑你是iHR部门,和我面试同一道题,我已经寄了,兄弟加油!
点赞
送花
回复
分享
发布于 2022-04-22 16:47

相关推荐

点赞 评论 收藏
转发
2 13 评论
分享
牛客网
牛客企业服务