字节三面都过了,但是offer我拒掉了。。

科技   2024-11-12 15:15   广东  

大家好,我就是那个在B站讲算法的「华南溜达虎」。

今天看到一位25届的同学说自己通过了字节三轮面试,但是拒掉了offer,原因是hr说工作强度比较大经常连续加班到晚上十点多,有时候周六日也需要去公司加班。当然楼主是头部985学校毕业,可以选择的机会比较多。

有些人认为趁年轻可以去字节拼几年多赚点钱,也有人很赞同楼主的选择认为如果用身体健康换取高薪那就有点得不偿失了。还有些秋招至今没有拿到offer的同学表示管不了那么多了,字节能给offer让他住公司都可以。大家在选择offer的时候会考虑哪些因素呢?

25届秋招已经开始了,我组织了一个秋招群,大家可以交流学习心得、面试经验,分享工作机会,有啥问题也可以在群里咨询。在群里我整理了一百多家已经启动秋招企业的文档,以及投递入口,每天都会更新,大家只要按照这个文档海投就可以了

大家互帮互助相信一定可以拿下秋招!计算机相关专业的同学可以 点击底部的「阅读原文」 加群。

言归正传,今天我们来分享一道高频面试题「移动零」。

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

举个例子:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

思路解析

题目要求对数组原地操作,也就是要求空间复杂度位O(1)

我们可以遍历一遍数组统计出非零的个数m,然后再遍历一遍数组把非零的元素依次覆盖数组的前m个位置,最后把剩下的n-m个位置置为0。这样我们需要遍历两遍数组,时间复杂度也是O(1)

下面我再介绍一种只遍历一遍数组的双指针解法,整体的思路类似快速排序。

定义两个指针,left = 0, right = 0

  1. 如果nums[right] == 0,right指针就往右移一步。
  2. 如果nums[right] != 0,就交换nums[left]和nums[right]的值,left和right同时向右移一步。

上述步骤保证了left != right时,left始终指向为零的元素,一旦right指向了非零元素,leftright就交换指向的元素。

c++代码

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left = 0;
        for (int right = 0; right < nums.size(); ++right) {
            //right指向元素不为0时,跟left交换指向的元素
            //如果left != right,left一定指向为零的元素
            //就算left == right,交换一下元素也没关系
            if (nums[right]) {
                //交换left和right指向的元素
                int temp = nums[right];
                nums[right] = nums[left];
                nums[left] = temp;
                ++left;
            }
        }

    }
};

python代码

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """

        left = 0
        for right in range(len(nums)):
            #right指向元素不为0时,跟left交换指向的元素
            #如果left != right,left一定指向为零的元素
            #就算left == right,交换一下元素也没关系
            if nums[right] != 0:
                #交换left和right指向的元素
                nums[left], nums[right] = nums[right], nums[left]
                left += 1

复杂度分析

时间复杂度: O(n),其中nnums的长度。

空间复杂度: O(1)

号外

经常使用leetcode会员的同学可以使用我的优惠通道啦!

https://leetcode.cn/premium/?promoChannel=ldtiger ,年度会员有效期比官网多俩月,季度会员有效期比官网多两个星期,还有专属福利,需要的读者朋友可以找我了解。

今天的分享就到这里,希望大家能有所收获!

又一位top2的同学被开。。

本来想拒绝字节的,但是他给的实在太多了。。

京东开奖了,我又犹豫了。。

在华为想休息一天太难了。。

鹅厂校招开奖在即,据说白菜价又创新高。。

编程网事
曾就职于BAT的互联网大厂程序员。个人网站:ldtiger.com
 最新文章