背道而驰的两家企业

2023-12-27 13:36
文章标签 企业 两家 背道而驰

本文主要是介绍背道而驰的两家企业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

先给昨天的 推文 做个更新。

昨天说到,抖音官方辟谣了收购饿了么的事情。

当天,阿里发生较大的人事变动,然后再次传出「盒马」「饿了么」摆上货架的事情,随后又被快速否认。

alt

当一个假消息被反复而又密集地提起,说明大概率不全是假消息。

尤其这个假消息背后还有及其显然的逻辑。

我们可以拭目以待,子弹估计很快就要落地了。

如果是真的,对阿里是利好,说明阿里开始重新梳理,什么才是自己的主线业务。

利用大流量进行扩张,效仿腾讯,是国内每家互联网或多或少都犯过的错。

以前互联网意气风发的时候,这套逻辑可以说成是"低成本试错"。

用大厂优势,一个赛道上难怕做到业内第二第三名,都能分到不少蛋糕。

按如今国际行情和国内监管力度,不仅仅是资本不愿意听此类故事,而是压根没有多少资本还愿意公平地正视中国企业。

主营业务只要不保持好看的增速,就是退步,更别说这些烧钱项目。

与正在逐步走回正确道路的阿里,另外一个背道而驰的企业是「格力」

日,格力以 亿购入格力钛 % 股份,有准备完全接盘格力钛的意思。

这里给不了解「格力钛」的同学科普一下,这是一家当时董明珠个人投了至少 亿搞的公司,注意是个人。

当时还拉上了万达的王健林和京东的刘强东。

结果格力钛翻车了,年年亏损,负债率达 % 以上。

就这么一家公司,董明珠还曾经在股东大会上,推动上市公司去收购它,自然遭受了股东们的强烈反对。

和谈不成,现在董明珠正打算通过自己的手段,以「格力」的名义把「格力钛」高溢价地接下来。

股民自然用脚投票,格力电器当日大跌 个点。

alt

格力董小姐这一通操作,是国内大多数上市企业家的缩影。

在他们眼中,上市融得的钱是理所应当。

给自己发高工资,低价回购用于激励高管,或干脆是做来做自己喜欢的事,乐此不疲。

在这里,没有共赢。

--

好了,每日「点评世间万物」的环节结束。

回到主线任务,做一道与主角之一「字节跳动」相关的题目。

题目描述

平台:LeetCode

题号:440

给定整数   和  ,返回   中字典序第   小的数字。

示例 1:

输入: n = 13, k = 2

输出: 10

解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]

所以第二小的数字是 10。

示例 2:

输入: n = 1, k = 1

输出: 1

提示:

计数模拟

寻找字典序第 小的数。

我们可以将该过程分两步操作 :「确定前缀」和「从以某个前缀开始找目标值」。

假定我们存在某个函数 int getCnt(int x, int limit),该函数实现了统计范围 内以 为前缀的数的个数。

有了该函数之后,我们可以从最小的前缀 开始枚举,假设当前枚举到前缀 ,根据 的大小关系进行分情况讨论:

  • :说明所有以 为前缀的数组均可跳过,此时让 自增, 减去 。含义为从下一个「数值比 大」的前缀中找目标值;
  • :说明目标值前缀必然为 ,此时我们需要在以 为前缀的前提下找目标值。此时让 (代表跳过了 本身)。含义为从下一个「字典序比 大」的前缀中找目标值。

时,当前前缀 即是答案(含义为以 为前缀的所有数中,最小的数,也就是 本身)。

然后重点看看 int getCnt(int x, int limit) 函数如何实现。

为了方便,记 的位数为 位数为

根据 getCnt 的函数定义,在范围 内,以 为前缀的数值数量等于下面所有情况的数量之和:

  • 位数为 的数:仅有 本身,共 个;
  • 位数为 的数,有 x0x9,共 个;
  • 位数为 的数,有 x00x99,共 个;
  • ...
  • 位数为 的数,此时根据「 长度与 等同的前缀 」和「 」的大小关系,进一步分情况讨论(举个 🌰,当 时, ,两者位数相差 位):
    • :此时所有位数为 的数均大于 ,合法个数为
    • :此时所有位数为 的数中部分满足 限制,合法个数为 个(只有 为合法数);
    • :此时所有位数为 的数均小于 ,合法个数为

Java 代码:

class Solution {
    public int findKthNumber(int n, int k) {
        int ans = 1;
        while (k > 1) {
            int cnt = getCnt(ans, n);
            if (cnt < k) {
                k -= cnt; ans++;
            } else {
                k--; ans *= 10;
            }
        }
        return ans;
    }
    int getCnt(int x, int limit) {
        String a = String.valueOf(x), b = String.valueOf(limit);
        int n = a.length(), m = b.length(), k = m - n;
        int ans = 0, u = Integer.parseInt(b.substring(0, n));
        for (int i = 0; i < k; i++) ans += Math.pow(10, i);
        if (u > x) ans += Math.pow(10, k);
        else if (u == x) ans += limit - x * Math.pow(10, k) + 1;
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    int findKthNumber(int n, int k) {
        int ans = 1;
        while (k > 1) {
            int cnt = getCnt(ans, n);
            if (cnt < k) {
                k -= cnt; ans++;
            } else {
                k--; ans *= 10;
            }
        }
        return ans;
    }
    int getCnt(int x, int limit) {
        string a = to_string(x), b = to_string(limit);
        int n = a.length(), m = b.length(), k = m - n;
        int ans = 0, u = stoi(b.substr(0, n));
        for (int i = 0; i < k; i++) ans += pow(10, i);
        if (u > x) ans += pow(10, k);
        else if (u == x) ans += limit - x * pow(10, k) + 1;
        return ans;
    }
};

Python 代码:

class Solution:
    def findKthNumber(self, n: int, k: int) -> int:
        def get_cnt(x, limit):
            a, b = str(x), str(limit)
            n, m = len(a), len(b)
            k = m - n
            ans = 0
            u = int(b[:n])
            for i in range(k):
                ans += int(pow(10, i))
            if u > x:
                ans += int(pow(10, k))
            elif u == x:
                ans += limit - x * int(pow(10, k)) + 1
            return ans

        ans = 1
        while k > 1:
            cnt = get_cnt(ans, n)
            if cnt < k:
                k, ans = k - cnt, ans + 1
            else:
                k, ans = k - 1, ans * 10
        return ans

TypeScript 代码:

function findKthNumber(n: number, k: number): number {
    const getCnt = function(x: number, limit: number): number {
        const a = String(x), b = String(limit);
        const n = a.length, m = b.length, k = m - n;
        let ans = 0;
        let u = parseInt(b.substring(0, n));
        for (let i = 0; i < k; i++) ans += Math.pow(10, i);
        if (u > x) ans += Math.pow(10, k);
        else if (u == x) ans += limit - x * Math.pow(10, k) + 1;
        return ans;
    };
    let ans = 1;
    while (k > 1) {
        let cnt = getCnt(ans, n);
        if (cnt < k) {
            k -= cnt; ans++;
        } else {
            k--; ans *= 10;
        }
    }
    return ans;
};
  • 时间复杂度:枚举前缀以及 getCnt 操作均与位数相关,复杂度均为 。整体复杂度为
  • 空间复杂度:忽略子串生成复杂度为 ,否则为

更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉

这篇关于背道而驰的两家企业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543312

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

企业安全之WiFi篇

很多的公司都没有安全团队,只有运维来负责整个公司的安全,从而安全问题也大打折扣。我最近一直在给各个公司做安全检测,就把自己的心得写下来,有什么不足之处还望补充。 0×01  无线安全 很多的公司都有不怎么注重公司的无线电安全,有钱的公司买设备,没钱的公司搞人力。但是人的技术在好,没有设备的辅助,人力在牛逼也没有个卵用。一个好的路由器、交换机、IDS就像你装备了 无尽、狂徒、杀人书一

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

企业大模型落地的“最后一公里”攻略

一、大模型落地的行业现状与前景 大模型在多个行业展现出强大的应用潜力。在金融行业,沉淀了大量高质量数据,各金融平台用户数以亿计,交易数据浩如烟海。利用大模型分析处理这些数据,金融机构可以预测用户行为偏好,更高效、准确评估客户风险,实时监测交易和市场波动,及时制定策略。IDC 调研显示,超半数的金融机构计划在 2023 年投资生成式人工智能技术。 在科技领域,商汤人工智能大装置为大模型企业提

MES系统如何支持企业进行数字化转型

MES系统(Manufacturing Execution System,制造执行系统)在企业数字化转型中扮演着至关重要的角色,它通过提供实时的生产数据、优化生产流程、提升质量管理水平、实现设备智能化管理以及促进企业内部协同和沟通等多种方式,支持企业实现全面的数字化转型。以下是MES系统如何支持企业进行数字化转型的详细分析:   一、提供实时生产数据与决策支持 MES系统能够实时采集生产过程

数字经济时代,零售企业如何实现以消费者为中心的数字化转型?

在数字经济时代,零售企业正面临着前所未有的挑战与机遇。随着消费者行为的数字化和多样化,传统的零售模式已难以满足市场需求。为了在激烈的市场竞争中立于不败之地,零售企业必须实现以消费者为中心的数字化转型。这一转型不仅仅是技术的升级,更是一场涉及企业战略、组织结构、运营模式和人才管理的深刻变革。本文将探讨零售企业在数字化转型过程中遇到的难点,并提出相应的解决策略,通过实际案例分析,展示如何通过综合措施进

真实案例分享:零售企业如何避免销售数据的无效分析?

在零售业务的数据分析中,无效分析不仅浪费时间和资源,还可能导致错误的决策。为了避免这种情况,企业必须采取策略来确保他们的数据分析工作能够产生实际的商业价值。本文将通过行业内真实的案例,探讨零售企业如何通过精心设计的数据策略和分析方法,借助商业智能BI工具,避免销售数据的无效分析,确保每一次分析都能为业务增长提供有力的支持。 文章中提到的BI数据分析工具分享给大家—— https://s.fan

亿发:中小型制造企业数字化转型典型场景、痛点、解决方案

随着全球制造业的不断发展,中小型制造企业正面临前所未有的挑战和机遇。数字化转型成为了企业提升竞争力、优化生产效率、应对市场变化的关键路径。然而,对于资源相对有限的中小型制造企业而言,数字化转型并非易事。他们在推进转型的过程中往往遇到许多典型场景和痛点。本文将分析这些场景及痛点,并给出针对性的解决方案,帮助中小制造企业成功迈向数字化。 场景一:生产计划与调度的复杂性 典型场景: 在生产过程

企业网银登录提示请确认您已插入工商银行U盾证书的解决方法

昨天受人之托帮小企业财务解决上网银的问题 因为不是专业做这个的,所以只能安装“常识”行事,但结果实在是令人意想不到。 排错的步骤: 同一台电脑上尝试不同浏览器,发现360浏览器的接受度相当普遍;给U盾换不同的连接线;在不同的电脑上安装银行的插件,再重复上面的步骤1和步骤2;最终的结果,在一台电脑上可以走到下一步,但时好时坏,无法解决问题;到知乎上找答案,在一篇说明里有提到定制的qq浏览器,最后

java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频)

这是什么系统? 获取资料方式在最下方 java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频) 企业员工信息管理系统旨在为公司提供高效的员工信息管理解决方案。该系统的核心功能涵盖密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核等方面,帮助企业优化人力资源管理流程。系统结构如下: (1)前端(员工端): 1.密码修改:员工可以修改自己的密码,提升账户的安全