20 万补偿刚到手,前领导邀网友朋友创业,每周仅干 3 天就保底 3 万

B站影视 2025-02-03 15:34 3

摘要:那时候他想着,赶紧找个新工作,过上安稳的生活,可谁知道,前领导忽然找到他,说让他一起创业,每周干三天,保底能赚3W。这待遇一听就挺诱人的还在想着要不要去呢?

这两天我一个朋友的遭遇让我深有感触。

34岁被裁员,本来还挺伤心的,结果公司竟然还挺仁义,给了20万补偿。

那时候他想着,赶紧找个新工作,过上安稳的生活,可谁知道,前领导忽然找到他,说让他一起创业,每周干三天,保底能赚3W。这待遇一听就挺诱人的还在想着要不要去呢?

不过,创业这事也真是两难,现在谁敢轻易跳进创业的坑里?

虽然领导口口声声保底3W,听着不错,但创业的风险实在不小。如果真的是一场“空中楼阁”,那损失可就不止20万了,万一还欠了些账,岂不是更麻烦?

所以我的建议是“先拿到钱再去”。而且最好不要投入资金,

毕竟,创业不是个简单的事,需要考虑的方面太多了,特别是没有充足的资金和稳定的客户支持时,每周三天赚3W这种承诺也可能只是画大饼!

这个问题在面试中有时会被用来考察我们对数组、滑动窗口以及乘法的理解,特别是当你在处理复杂度和性能时,这个问题能帮你练习一些技巧。

给定一个正整数数组 nums 和一个整数 k,请你找出数组中所有乘积小于 k 的连续子数组的个数。

举个简单的例子:

输入: nums = [10, 5, 2, 6], k = 100输出: 8解释: 子数组包括 [10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6],它们的乘积均小于 100。

这个问题看似简单,但实现起来有一定的挑战,主要在于如何高效地处理数组中的子数组。在这个问题中,我们可以使用“滑动窗口”技巧来优化暴力解法。

暴力解法的思路是枚举所有的子数组,然后计算它们的乘积,判断是否小于 k。但显然,这样做的时间复杂度是 O(n^2),对于大规模数据来说,可能会超时。所以,我们需要优化一下。

我们可以利用滑动窗口来降低时间复杂度,具体的思路是:

两个指针:我们维护一个左右指针(left 和 right),用来表示当前窗口的范围。窗口乘积:计算当前窗口内所有元素的乘积。判断乘积是否小于 K:当乘积小于 k 时,右指针往右扩展,继续扩大窗口。如果乘积大于等于 k,则移动左指针,缩小窗口,直到乘积小于 k。

对于每次右指针扩展时,我们可以知道当前窗口中的所有子数组的乘积都小于 k。假设当前 left 指针的位置固定,那么所有以 left 为起始的子数组都满足条件,其个数是 right - left。

public class SubarrayProduct { public int numSubarrayProductLessThanK(int nums, int k) { if (k = k) { product /= nums[left]; left++; } // 所有子数组的乘积都小于 k,个数是 (right - left + 1) count += right - left + 1; right++; } return count; } public static void main(String args) { SubarrayProduct sp = new SubarrayProduct; int nums = {10, 5, 2, 6}; int k = 100; System.out.println(sp.numSubarrayProductLessThanK(nums, k)); // 输出 8 }}

滑动窗口技巧是处理这类问题的关键。相对于暴力解法,滑动窗口通过动态维护一个符合条件的子数组的范围,避免了重复计算,提高了效率。它能有效降低时间复杂度,特别是在大数据量的情况下。

通过这个问题,我们可以看到滑动窗口在算法中的强大威力。它不仅能减少重复计算,还能优化空间和时间复杂度。而在实际开发中,这种技巧也常常能帮助我们在面试中脱颖而出,解决一些看似复杂的问题。

来源:麻辣小王子

相关推荐