普通视图

发现新文章,点击刷新页面。
今天 — 2026年2月3日首页

每日一题-三段式数组 I🟢

2026年2月3日 00:00

给你一个长度为 n 的整数数组 nums

如果存在索引 0 < p < q < n − 1,使得数组满足以下条件,则称其为 三段式数组(trionic)

  • nums[0...p] 严格 递增,
  • nums[p...q] 严格 递减,
  • nums[q...n − 1] 严格 递增。

如果 nums 是三段式数组,返回 true;否则,返回 false

 

示例 1:

输入: nums = [1,3,5,4,2,6]

输出: true

解释:

选择 p = 2, q = 4

  • nums[0...2] = [1, 3, 5] 严格递增 (1 < 3 < 5)。
  • nums[2...4] = [5, 4, 2] 严格递减 (5 > 4 > 2)。
  • nums[4...5] = [2, 6] 严格递增 (2 < 6)。

示例 2:

输入: nums = [2,1,3]

输出: false

解释:

无法选出能使数组满足三段式要求的 pq

 

提示:

  • 3 <= n <= 100
  • -1000 <= nums[i] <= 1000

Vue-常用修饰符

2026年2月2日 21:49

前言

在 Vue 开发中,修饰符(Modifiers)是指令后的一个特殊后缀(以 . 开头),它能以极简的方式帮我们处理事件冒泡、键盘监听以及复杂的双向绑定逻辑。掌握它们,能让你的模板代码既优雅又高效。

一、 事件修饰符:精准控制交互行为

事件修饰符主要用于处理 DOM 事件的细节。

  • .stop:阻止事件冒泡(调用 event.stopPropagation())。
  • .prevent:阻止事件的默认行为(调用 event.preventDefault())。
  • .capture:在捕获模式下触发事件监听器。
  • .self:只有当事件是从触发元素本身触发时才触发回调。
  • .once:事件只触发一次,之后自动移除监听器。
  • .passive:滚动事件的性能优化,告诉浏览器不需要等待 preventDefault

二、 键盘与鼠标修饰符:语义化监听

1. 按键修饰符

在监听键盘事件时,我们经常需要检查特定的按键,例如:<input @keyup.enter="submitForm" type="text" placeholder="按回车提交">

  • .enter:回车键
  • .tab:Tab 键
  • .space:空格键
  • .delete:删除或退格键
  • .up / .down / .left / .right:方向键

2. 鼠标修饰符

用于限制处理程序仅响应特定的鼠标按键。

  • .left:点击鼠标左键触发。
  • .right:点击鼠标右键触发。
  • .middle:点击鼠标中键(滚轮点击)触发。

三、 v-model 修饰符:数据预处理

这些修饰符可以自动处理表单输入的数据格式。

  • .lazy: 将v-model的同步时机设置在change事件之后,一般为在输入框失去焦点时。
  • .number:自动将用户的输入值转为数值类型(内部使用 parseFloat)。
  • .trim:自动过滤用户输入内容的首尾空白字符。

四、 双向绑定修饰符

这是 Vue 2 到 Vue 3 变化最大的部分。

1. Vue 2 时代的 .sync

在 Vue 2 中,.sync 是实现父子组件属性双向绑定的语法糖。

// 使用 .sync 的语法糖
<ChildComponent :title.sync="pageTitle" />
// 在子组件的方法中
this.$emit('update:title', newTitleValue);

2. Vue 3 的统一:v-model:prop

Vue 3 废弃了 .sync,将其功能合并到了 v-model 中。支持在同一个组件上绑定多个 v-model

 // 在父组件中
<ChildComponent v-model:title="pageTitle" />

// 子组件
<script setup>
defineProps(['title']);
const emit = defineEmits(['update:title']);

const updateTitle = (newVal) => {
  emit('update:title', newVal);
};
</script>

3. Vue 3.4+ 的黑科技:defineModel

这是目前 Vue 3 最推荐的写法,极大简化了双向绑定的逻辑代码。

// 父组件
<ChildComponent v-model="inputValue" />

// 子组件
const inputValue = defineModel({
 // inputValue为双向绑定输入框的值
  type: [String],
  // 默认值
  default: ''
})

五、 总结

  1. 交互逻辑优先使用事件修饰符,减少组件内的非业务代码。
  2. 表单处理善用 .trim.number,降低后端校验压力。
  3. 父子通信在 Vue 3 项目中全面拥抱 v-model:prop,如果是新项目(Vue 3.4+),请直接使用 defineModel,它能让你的代码量减少 50% 以上。

3637. 三段式数组 I

作者 stormsunshine
2025年8月4日 06:34

解法一

思路和算法

数组 $\textit{nums}$ 的长度是 $n$。最直观的思路是遍历 $0 < p < q < n - 1$ 的所有下标对 $(p, q)$,判断是否同时满足三段式数组的全部条件。

  • 下标范围 $[0, p]$ 严格递增。

  • 下标范围 $[p, q]$ 严格递减。

  • 下标范围 $[q, n - 1]$ 严格递增。

当遇到满足全部条件的下标对 $(p, q)$ 时,返回 $\text{true}$。如果不存在满足全部条件的下标对 $(p, q)$,返回 $\text{false}$。

代码

###Java

class Solution {
    public boolean isTrionic(int[] nums) {
        int n = nums.length;
        for (int p = 1; p < n - 2; p++) {
            if (!isMonotonicInRange(nums, 0, p, 1)) {
                continue;
            }
            for (int q = p + 1; q < n - 1; q++) {
                if (isMonotonicInRange(nums, p, q, -1) && isMonotonicInRange(nums, q, n - 1, 1)) {
                    return true;
                }
            }
        }
        return false;
    }

    public boolean isMonotonicInRange(int[] nums, int start, int end, int direction) {
        for (int i = start; i < end; i++) {
            if ((nums[i + 1] - nums[i]) * direction <= 0) {
                return false;
            }
        }
        return true;
    }
}

###C#

public class Solution {
    public bool IsTrionic(int[] nums) {
        int n = nums.Length;
        for (int p = 1; p < n - 2; p++) {
            if (!IsMonotonicInRange(nums, 0, p, 1)) {
                continue;
            }
            for (int q = p + 1; q < n - 1; q++) {
                if (IsMonotonicInRange(nums, p, q, -1) && IsMonotonicInRange(nums, q, n - 1, 1)) {
                    return true;
                }
            }
        }
        return false;
    }

    public bool IsMonotonicInRange(int[] nums, int start, int end, int direction) {
        for (int i = start; i < end; i++) {
            if ((nums[i + 1] - nums[i]) * direction <= 0) {
                return false;
            }
        }
        return true;
    }
}

复杂度分析

  • 时间复杂度:$O(n^3)$,其中 $n$ 是数组 $\textit{nums}$ 的长度。需要遍历的下标对数量是 $O(n^2)$,每个下标对判断是否符合三段式数组的全部条件的时间是 $O(n)$,因此时间复杂度是 $O(n^3)$。

  • 空间复杂度:$O(1)$。

解法二

思路和算法

可以遍历数组 $\textit{nums}$ 一次,判断是否符合三段式的条件。

三个子数组的单调性必须依次满足严格单调递增、严格单调递减、严格单调递增。首个子数组的起始下标是 $0$,从起始下标向右遍历,遍历过程中执行如下操作。

  • 由于三个子数组都满足严格单调递增或严格单调递减,因此不允许出现相邻元素相等的情况。如果遇到相邻元素相等的情况,则一定不符合三段式的条件。

  • 如果遍历到数组 $\textit{nums}$ 的末尾或者遇到相邻元素的单调性与当前子数组的单调性条件相反的情况(已经排除相邻元素相等的情况),则可以确定当前子数组的结束下标。将当前子数组的结束下标作为下一个子数组的起始下标,继续遍历下一个子数组。

当数组 $\textit{nums}$ 可以恰好分成三个子数组且依次满足严格单调递增、严格单调递减、严格单调递增时,返回 $\text{true}$,否则返回 $\text{false}$。

代码

###Java

class Solution {
    public boolean isTrionic(int[] nums) {
        int n = nums.length;
        int index = 0;
        for (int i = 0, direction = 1; i < 3; i++, direction *= -1) {
            index = findMonotonicRangeEnd(nums, index, direction);
            if (index < 0) {
                return false;
            }
        }
        return index == n - 1;
    }

    public int findMonotonicRangeEnd(int[] nums, int start, int direction) {
        int n = nums.length;
        int end = -1;
        for (int i = start; i < n && end < 0; i++) {
            if (i < n - 1 && nums[i + 1] == nums[i]) {
                return -1;
            }
            if (i == n - 1 || (nums[i + 1] - nums[i]) * direction < 0) {
                end = i;
            }
        }
        return end > start ? end : -1;
    }
}

###C#

public class Solution {
    public bool IsTrionic(int[] nums) {
        int n = nums.Length;
        int index = 0;
        for (int i = 0, direction = 1; i < 3; i++, direction *= -1) {
            index = FindMonotonicRangeEnd(nums, index, direction);
            if (index < 0) {
                return false;
            }
        }
        return index == n - 1;
    }

    public int FindMonotonicRangeEnd(int[] nums, int start, int direction) {
        int n = nums.Length;
        int end = -1;
        for (int i = start; i < n && end < 0; i++) {
            if (i < n - 1 && nums[i + 1] == nums[i]) {
                return -1;
            }
            if (i == n - 1 || (nums[i + 1] - nums[i]) * direction < 0) {
                end = i;
            }
        }
        return end > start ? end : -1;
    }
}

复杂度分析

  • 时间复杂度:$O(n)$,其中 $n$ 是数组 $\textit{nums}$ 的长度。最多需要遍历数组一次。

  • 空间复杂度:$O(1)$。

两种写法,推广到多个拐弯的一般情况(Python/Java/C++/Go)

作者 endlesscheng
2025年8月3日 12:22

写法一:三个循环

三段式子数组必须满足「严格递增 - 严格递减 - 严格递增」,一共三段,每一段至少要有两个数

每一段分别用一个循环寻找,具体请看 视频讲解 中的图,欢迎点赞关注~

###py

class Solution:
    def isTrionic(self, nums: List[int]) -> bool:
        n = len(nums)
        # 第一段
        i = 1
        while i < n and nums[i - 1] < nums[i]:
            i += 1
        if i == 1:  # 第一段至少要有两个数
            return False

        # 第二段
        i0 = i
        while i < n and nums[i - 1] > nums[i]:
            i += 1
        if i == i0 or i == n:  # 第二段至少要有两个数,第三段至少要有两个数
            return False

        # 第三段
        while i < n and nums[i - 1] < nums[i]:
            i += 1
        return i == n

###java

class Solution {
    public boolean isTrionic(int[] nums) {
        int n = nums.length;
        // 第一段
        int i = 1;
        while (i < n && nums[i - 1] < nums[i]) {
            i++;
        }
        if (i == 1) { // 第一段至少要有两个数
            return false;
        }

        // 第二段
        int i0 = i;
        while (i < n && nums[i - 1] > nums[i]) {
            i++;
        }
        if (i == i0 || i == n) { // 第二段至少要有两个数,第三段至少要有两个数
            return false;
        }

        // 第三段
        while (i < n && nums[i - 1] < nums[i]) {
            i++;
        }
        return i == n;
    }
}

###cpp

class Solution {
public:
    bool isTrionic(vector<int>& nums) {
        int n = nums.size();
        // 第一段
        int i = 1;
        while (i < n && nums[i - 1] < nums[i]) {
            i++;
        }
        if (i == 1) { // 第一段至少要有两个数
            return false;
        }

        // 第二段
        int i0 = i;
        while (i < n && nums[i - 1] > nums[i]) {
            i++;
        }
        if (i == i0 || i == n) { // 第二段至少要有两个数,第三段至少要有两个数
            return false;
        }

        // 第三段
        while (i < n && nums[i - 1] < nums[i]) {
            i++;
        }
        return i == n;
    }
};

###go

func isTrionic(nums []int) bool {
n := len(nums)
// 第一段
i := 1
for i < n && nums[i-1] < nums[i] {
i++
}
if i == 1 { // 第一段至少要有两个数
return false
}

// 第二段
i0 := i
for i < n && nums[i-1] > nums[i] {
i++
}
if i == i0 || i == n { // 第二段至少要有两个数,第三段至少要有两个数
return false
}

// 第三段
for i < n && nums[i-1] < nums[i] {
i++
}
return i == n
}

写法二:一个循环

如果题目改成「增减增减增」,难道要写五个循环吗?

改成统计拐弯的次数,可以推广到更一般的情况。

###py

class Solution:
    def isTrionic(self, nums: List[int]) -> bool:
        if nums[0] >= nums[1]:  # 一开始必须是递增的
            return False
        cnt = 1
        for i in range(2, len(nums)):
            if nums[i - 1] == nums[i]:
                return False
            if (nums[i - 2] < nums[i - 1]) != (nums[i - 1] < nums[i]):
                cnt += 1
        return cnt == 3  # 一定是增减增

###java

class Solution {
    public boolean isTrionic(int[] nums) {
        if (nums[0] >= nums[1]) { // 一开始必须是递增的
            return false;
        }
        int cnt = 1;
        for (int i = 2; i < nums.length; i++) {
            if (nums[i - 1] == nums[i]) {
                return false;
            }
            if ((nums[i - 2] < nums[i - 1]) != (nums[i - 1] < nums[i])) {
                cnt++;
            }
        }
        return cnt == 3; // 一定是增减增
    }
}

###cpp

class Solution {
public:
    bool isTrionic(vector<int>& nums) {
        if (nums[0] >= nums[1]) { // 一开始必须是递增的
            return false;
        }
        int cnt = 1;
        for (int i = 2; i < nums.size(); i++) {
            if (nums[i - 1] == nums[i]) {
                return false;
            }
            if ((nums[i - 2] < nums[i - 1]) != (nums[i - 1] < nums[i])) {
                cnt++;
            }
        }
        return cnt == 3; // 一定是增减增
    }
};

###go

func isTrionic(nums []int) bool {
if nums[0] >= nums[1] { // 一开始必须是递增的
return false
}
cnt := 1
for i := 2; i < len(nums); i++ {
if nums[i-1] == nums[i] {
return false
}
if (nums[i-2] < nums[i-1]) != (nums[i-1] < nums[i]) {
cnt++
}
}
return cnt == 3 // 一定是增减增
}

复杂度分析

  • 时间复杂度:$\mathcal{O}(n)$,其中 $n$ 是 $\textit{nums}$ 的长度。
  • 空间复杂度:$\mathcal{O}(1)$。

专题训练

见下面滑动窗口与双指针题单的「六、分组循环」。

分类题单

如何科学刷题?

  1. 滑动窗口与双指针(定长/不定长/单序列/双序列/三指针/分组循环)
  2. 二分算法(二分答案/最小化最大值/最大化最小值/第K小)
  3. 单调栈(基础/矩形面积/贡献法/最小字典序)
  4. 网格图(DFS/BFS/综合应用)
  5. 位运算(基础/性质/拆位/试填/恒等式/思维)
  6. 图论算法(DFS/BFS/拓扑排序/基环树/最短路/最小生成树/网络流)
  7. 动态规划(入门/背包/划分/状态机/区间/状压/数位/数据结构优化/树形/博弈/概率期望)
  8. 常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树)
  9. 数学算法(数论/组合/概率期望/博弈/计算几何/随机算法)
  10. 贪心与思维(基本贪心策略/反悔/区间/字典序/数学/思维/脑筋急转弯/构造)
  11. 链表、二叉树与回溯(前后指针/快慢指针/DFS/BFS/直径/LCA/一般树)
  12. 字符串(KMP/Z函数/Manacher/字符串哈希/AC自动机/后缀数组/子序列自动机)

我的题解精选(已分类)

昨天 — 2026年2月2日首页

邵氏兄弟:百年港牌,今成华人文化上市跳板

2026年2月2日 21:32

作者|宋婉心

编辑|张帆

香港娱乐业正逐步改姓“黎”。

近日香港头部电影集团绍氏兄弟发布了一条公告,表示拟收购其主要股东华人文化旗下的核心影视资产。

核心影视资产主要是,华人文化通过全资附属公司HoldCo间接控制的CMC Moon Holdings所持业务。

CMC Moon几乎涵盖了华人文化最核心的影视内容与渠道资源,包括剧集制作龙头正午阳光、电影投资制作公司上海华人影业、海外发行业务CMC Pictures,以及以UME品牌运营的影院网络和华人文化电影院线等。

公布后第二个交易日收盘,邵氏兄弟报0.32港元/股,大跌15.79%。

以资产规模计,截至2025年9月末,邵氏兄弟经审核资产总值约4.59亿元,而拟注入资产的净值高达约85.58亿元。

表面上看,这是邵氏兄弟“蛇吞象”买资产,但本质上,是华人文化反向借壳完成了上市,而邵氏中小股东,却成为这场棋局的直接买单方。

01 反向借壳

交易前,华人文化已持有邵氏29.94%股权,为第二大股东,彼时邵氏仅主营港片制作与少量发行,无线下院线布局,同时2022年至2024年营收持续萎缩。

对于华人文化而言,此前影视资产估值偏低,UME院线融资扩店也受限,缺乏港股上市平台进行资产证券化。 

而通过本次发行股份收购,华人文化持股比例跃升至59.74%,实现对邵氏的绝对控股后,华人文化得以反向借壳完成上市。

华人文化之所以不选择独立IPO,一方面是因为影视行业长期估值承压,投资者信心不足,独立IPO估值难达预期,另一方面,华人文化业务多元且分散,整合申报成本高、周期长。

通过反向借壳,华人文化既规避了港股IPO的繁琐流程,又为旗下影视资产完成证券化、为UME院线找到上市融资平台,一举解决两大痛点。交易的本质,是华人文化通过“左手倒右手”完成高效整合,兼顾效率、确定性与长期价值。

不过本次交易15.8%的折价配股,引起了二级市场的剧烈震荡,也是这场资本腾挪的争议核心。

此次配股价格0.32港元/股,较公告前收盘价折让15.8%,远超港股文娱行业并购8%-12%的平均折价率。

更关键的是,159.3亿股的发行规模占邵氏发行后总股本的91.82%,直接导致原中小股东持股比例集体腰斩,且交易未设置任何小股东补偿条款。

对此,市场解读为华人文化为“快速交割、绝对控股”的妥协——

为满足港交所公众持股不低于25%的要求,华人文化将部分股份分配给阿里、腾讯等关联方,二者合计持股达34.52%,既快速锁定控股权,又避免给二级市场抬价空间。

公告后二级市场用脚投票,邵氏股价从0.38港元跌至0.275港元,市值蒸发超三成,中小股东权益大幅缩水。

据交易公告,华人文化计划在交易完成后12个月内,打通邵氏与正午阳光、UME院线的资源,实现“内容制作、发行、线下放映”的全链路协同。

但这一规划仍面临多重考验——影视与院线的跨地域管理考验CMC的整合能力,UME院线虽布局一二线城市,但行业复苏不及预期的风险仍存;而部分邵氏小股东已发起联合问询,维权诉求或拖慢交易交割进程。

对于邵氏中小股东而言,短期的权益缩水已成定局,能否通过长期估值修复回本,取决于华人文化的整合效率与资产兑现能力。

而对于整个文娱行业,这场交易或许标志着港股将成为内地文娱资产证券化的重要阵地。

02 香港娱乐的幕后一哥

香港娱乐产业的衰落有目共睹。

2018年开始,TVB已经连续亏损7年,2024年全年财报公布时,公司表示预计2025年将实现盈利。与此同时,内地同样传统电视出身的芒果超媒已经增长至500亿元市值左右,是TVB母公司市值的30多倍。

作为内地的“默多克”,黎瑞刚执掌的华人文化在传媒娱乐领域的布局几乎囊括了所有领域,不限于影视、音乐、体育等板块,而在香港,华人文化同样早早介入。

华人文化自2015年起主导对TVB的战略投资,并于2020年成为TVB最大股东。2023年及之后多次连任董事,实际掌控TVB战略方向。

可以看到的是,在投资的初始几年,黎瑞刚一直对TVB按兵不动,直到近年TVB近乎濒危,才进行了一系列调整。比如开启直播带货,和芒果TV、优酷等内地平台打造《声生不息·港乐季》《无限超越班》等。

以《声生不息·港乐季》为例,TVB只负责提供艺人、版权等资源,湖南卫视则是投资方兼制作方。据真故研究室报道,该节目在香港播出后,所有收入归TVB所有。重返TVB的曾志伟直言:拿了个不要钱的节目回来。

但即使如此,一系列改革对TVB实际的业绩翻身依旧收效甚微。

在这档综艺播出、开启直播带货的2022年,TVB虽然整体营收增长了24%,但亏损仍在扩大,相比前年的3.14亿港元亏损还增加了2400万港元,且二级市场也颇为冷淡。

直播带货曾在2023年大幅带动股价创四年新高,但也叫好不叫座。当年TVB电子商贸业务收入大幅缩水,到了2024年,电商业务收入仅剩1.26亿港元,也成了TVB目前唯一亏损的业务。

TVB股价在2023年触及18港元高点后,至今已一路跌回至3港元左右。

(TVB近三年股价)

而这次华人文化反向借的“壳”绍氏兄弟影业,和TVB一样,也是邵逸夫手下“时代的眼泪”。

“绍氏武侠片”曾是香港上个世纪50年代至80年代期间的香港电影招牌。上世纪60年代,武侠文化兴起,而邵逸夫遵循商业制片路线,坚持“观众至上”,基于对当时市民观众兴趣的洞察,绍氏影业成功抓住了武侠片的观看热潮。

此外在公司经营上,邵逸夫引入的仿美式制片厂制度,也让电影制作更为标准化和工业化,被业内称为“东方好莱坞”,进而给绍氏兄弟带来了丰厚利润。

英国《每日电讯报》称,巅峰时期,每周都有超过200万观众观看邵氏的电影。

但要注意的是,这个活跃在上个世纪的老牌香港电影制片厂,和如今的“绍氏兄弟”实际上是两家不同的实体——绍氏兄弟的核心内容资产早已在2000年就永久出售给了马来西亚的天映娱乐。

此后,绍氏兄弟就已经只剩下一个品牌空壳,约760部经典电影版权和和绍氏再无关系,绍氏兄弟也正式进入衰退期。直至2009年,绍氏兄弟完成私有化退市。

接下来的故事便迎来华人文化登场。2015年,华人文化密集出手投资、组建文娱帝国之时,控股了一家名为美克国际的香港上市公司,与此同时,作为TVB的第一大股东,华人文化凭借TVB与绍氏兄弟的渊源,取得了后者的品牌使用权。

随后在2016年,华人文化将美克国际更名为了“绍氏兄弟”,一个本质上与人们认知中的老牌制片厂毫无关系的新“绍氏兄弟”。

而如今,这一“绍氏兄弟”的壳再次被华人文化拿来作为上市平台进行资本化操作,注入了内地的影视厂牌和院线资产。

至此,新“绍氏兄弟”实体内,融合了香港制片厂品牌、港股上市平台、内地影视内容和院线以及内地资本。华人文化俨然已经成为香港和内地影视圈融合的主要试验场。

只是从过去几年的实践来看,在沉疴旧疾未解决的背景下,香港娱乐嫁接内地资源迎来短暂的回春后,终又回归平静。

*免责声明:

本文内容仅代表作者看法。

市场有风险,投资需谨慎。在任何情况下,本文中的信息或所表述的意见均不构成对任何人的投资建议。在决定投资前,如有需要,投资者务必向专业人士咨询并谨慎决策。我们无意为交易各方提供承销服务或任何需持有特定资质或牌照方可从事的服务。

关注获取更多资讯

阿里系高管加盟擎天租

2026年2月2日 20:56
2月2日,全球机器人租赁服务平台擎天租宣布完成新一轮关键管理层布局。阿里资深渠道建设专家李立恒(花名:黑猫警长),与阿里商业战略与组织变革专家王明峰(花名:天相)正式加入,分别出任擎天租联席总裁与首席战略官(CSO)。此外,擎天租也正式宣布启动全国城市合伙人战略计划。目前,公司管理层除新加入的两位阿里系高管之外,智元合伙人、联席总裁姜青松出任公司董事长;飞阔科技创始人李一言担任CEO;前饿了么副总裁陈艳霞出任COO;喵掌柜创始人李可为担任CMO。(界面)

抖音与2026年总台春晚达成合作

2026年2月2日 20:55
36氪获悉,抖音与中央广播电视总台《2026年春节联欢晚会》联合宣布,抖音成为2026年总台新媒体《竖屏看春晚》独家合作伙伴。与此同时,抖音还将提供横屏、无障碍、幕后花絮等多路直播,并依托多机位并行直播技术,在单个直播间同时呈现多路直播画面。

变幻的光影,不变的干草堆 - 肘子的 Swift 周报 #121

作者 Fatbobman
2026年2月2日 22:00

两周前,借着参加 iOS Conf SG 2026 的契机,我造访了新加坡国立美术馆,并有幸参观了《走进现代:波士顿美术博物馆印象派大师展》。尽管此前也看过不少优秀的展览,但这次经历仍带来了某种不同寻常的触动。

ST泉为:被债权人申请重整及预重整

2026年2月2日 20:31
36氪获悉,ST泉为公告,公司收到债权人青岛泰上青阳供应链管理有限公司(简称“申请人、债权人”)发来的通知,获悉申请人以公司不能清偿到期债务且明显缺乏清偿能力,但具有重整价值为由,于1月29日向东莞市中级人民法院申请对公司进行重整,并申请启动预重整程序。公司尚未收到法院对申请人申请公司重整及预重整的受理文件,申请人的重整及预重整申请能否被法院裁定受理存在不确定性。

沪市首份年报出炉,芯导科技2025年净利润1.06亿元

2026年2月2日 20:24
沪市首份年报出炉,芯导科技2月2日披露的2025年年度报告显示,公司2025年实现营业收入3.94亿元,同比增长11.52%;归属于上市公司股东的净利润1.06亿元,同比下降4.91%;基本每股收益0.9元。公司拟向全体股东每10股派发现金红利4.3元(含税)。(证券时报)
❌
❌