亚洲财经

搜索

长鑫科技 3 万亿,一签 2 万元的红包,居然还嫌少?

长鑫科技 3 万亿,一签 2 万元的红包,居然还嫌少?

长鑫科技

今天是长鑫科技上市的第一天,作为"航母级"的 IPO 案例,而且又是科技大牛市的明星股。

上市首日就破了诸多记录:

  • A 股首只开盘市值破 3 万亿的科技股
  • 超越中芯国际,科创板市值榜首;超越工商银行,登顶 A 股市值榜首
  • A 股首只单日成交额破千亿的个股,同时换手率超 50%,交投活跃度创 A 股新股首日之最

但这些和咱们普通老百姓关系不大,大伙最关心的还是,中一手能赚多少钱。

之前咱们推算的,中一签也就是几千到几万不等,十几万的事情别想了,十倍股也不太可能。

现在结果公布了,一签赚 2 万,涨幅 470% 。

更离谱的是,收盘后开始有人骂了,说这么好的叙事,才涨这么点。

这么说吧,涨得一点都不少了,市值 3 万亿,所有中签投资者总盈利超过 1500 亿,还想怎么样?

那些收盘后大骂的人,大概率不是纯中签的幸运儿,因为没人会嫌 2 万元的红包太小,破口大骂的,大概率是开盘追高冲进去的赌徒。

对此,你怎么看?作为中签率超高的大肉签,你中了吗(反正我没有),又在涨幅多少的时候出掉的呢,欢迎评论区交流。

...

回归主题,来一道和「腾讯」相关的算法题。

题目描述

平台:LeetCode

题号:739

给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。

如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例 1:

输入: temperatures = [73,74,75,71,69,72,76,73]

输出: [1,1,4,2,1,1,0,0]

示例 2:

输入: temperatures = [30,40,50,60]

输出: [1,1,1,0]

示例 3:

输入: temperatures = [30,60,90]

输出: [1,1,0]

提示:

单调栈

抽象题意为 : 求解给定序列中每个位置(右边)最近一个比其大的位置,可使用「单调栈」来进行求解。

具体的,我们可以从前往后处理所有的 ,使用某类容器装载我们所有的「待更新」的位置(下标),假设当前处理到的是 

  • 若其比容器内的任意位置(下标)对应温度要低,其必然不能更新任何位置(下标),将其也加入容器尾部(此时我们发现,若有一个新的位置(下标)加入容器,其必然是当前所有待更新位置(下标)中的温度最低的,即容器内的温度单调递减);

  • 若其价格高于容器内的任一位置(下标)对应温度,其能够更新容器位置(下标)的答案,并且由于我们容器满足单调递减特性,我们必然能够从尾部开始取出待更新位置来进行更新答案,直到处理完成或遇到第一个无法更新位置。

由于我们需要往尾部添加和取出元素,因此容器可使用「栈」。

Java 代码:

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        int n = temperatures.length;
        int[] ans = new int[n];
        Deque<Integer> d = new ArrayDeque<>();
        for (int i = 0; i < n; i++) {
            while (!d.isEmpty() && temperatures[d.peekLast()] < temperatures[i]) {
                int idx = d.pollLast();
                ans[idx] = i - idx;
            }
            d.addLast(i);
        }
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    vector<intdailyTemperatures(vector<int>& temperatures) {
        int n = temperatures.size();
        vector<intans(n);
        deque<int> d;
        for (int i = 0; i < n; i++) {
            while (!d.empty() && temperatures[d.back()] < temperatures[i]) {
                int idx = d.back();
                ans[idx] = i - idx;
                d.pop_back();
            }
            d.push_back(i);
        }
        return ans;
    }
};

Python 代码:

class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        n, he, ta = len(temperatures), 00
        ans, stk = [0] * n, [-1] * n
        for i in range(n):
            while he < ta and temperatures[stk[ta - 1]] < temperatures[i]:
                ta -= 1
                idx = stk[ta]
                ans[idx] = i - idx
            stk[ta] = i
            ta += 1
        return ans

TypeScript 代码:

function dailyTemperatures(temperatures: number[]): number[] {
    const n = temperatures.length
    const ans = new Array<number>(n).fill(0)
    const stk = new Array<number>(n).fill(-1)
    let he = 0, ta = 0
    for (let i = 0; i < n; i++) {
        while (he < ta && temperatures[stk[ta - 1]] < temperatures[i]) {
            const idx = stk[--ta]
            ans[idx] = i - idx
        }
        stk[ta++] = i
    }
    return ans
};
  • 时间复杂度:
  • 空间复杂度:

最后

巨划算的 LeetCode 会员优惠通道目前仍可用 ~

使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。

我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻

欢迎关注,明天见。



资讯来源:微信公众号