重磅,下一代 iOS 迎来重大更新,国行或无缘

news2024/11/15 13:52:41

iOS 18

近日,海外记者爆料,苹果已与 OpenAI 达成协议,将聊天机器人 ChatGPT 集成到 iOS 18,双方的合作伙伴关系预计将于 WWDC 2024 上官宣。

作为全球供应链大师的苹果,自然也会把「硬件」的一套带到「软件」当中,那就是"多供应商混用"。

据悉,苹果由于不放心让 OpenAI 成为 iOS 新功能的单一供应商,苹果仍在努力与谷歌达成协议,提供 Gemini 作为一种选择。

"多供应商混用"在商业行为中十分常见,可以在确保「命脉不会全砸在某个单一供应商」以外,还可以「牵制单一供应商的抬价行为」。

例如苹果的屏幕供应商就有 三星、LG、夏普、JDI 和 京东方 等好几家。

消费者大多不会在意是否"多供应商混用",但会高度在意"使用感受是否统一"。

处理器、屏幕等硬件已经有成熟的行业标准,因此苹果能够在多供应商混用的前提下,确保产品使用感受的一致性。

但诸如 AI 等软件服务,目前还没有统一的衡量标准,我十分好奇苹果是如何确保这些由不同供应商提供的软件服务的体验一致性。

毕竟这是我印象中,苹果首次在「主要功能的软件领域」采用非自研的解决方案。

另外,众所周知,无论是 OpenAI 还是 Google 在中国大陆都属于「荒原」。

那么国行版 iOS 18 的 AI 服务是会由国内厂商提供,还是直接阉割,也将会是关键问题之一。

对于大概率会出现的 iOS 18 特供版,你怎么看?

...

回归主题。

来一道和「百度」的题目。

题目描述

平台:LeetCode

题号:1620

给你一个数组 towers 和一个整数 radius

数组  towers  中包含一些网络信号塔,其中   表示第 i 个网络信号塔的坐标是   且信号强度参数为 q

所有坐标都是在 X-Y 坐标系内的「整数」坐标。

两个坐标之间的距离用「欧几里得距离」计算。

整数 radius 表示一个塔能到达的最远距离。

如果一个坐标跟塔的距离在 radius 以内,那么该塔的信号可以到达该坐标。

在这个范围以外信号会很微弱,所以 radius 以外的距离该塔是不能到达的。

如果第 i 个塔能到达  ,那么该塔在此处的信号为 ⌊q / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。

一个坐标的信号强度是所有能到达该坐标的塔的信号强度之和。

请你返回数组 ,表示信号强度最大的整数坐标点 

如果有多个坐标网络信号一样大,请你返回字典序最小的「非负」坐标。

注意:

  • 坐标  (x1, y1) 字典序比另一个坐标  (x2, y2) 小,需满足以下条件之一:
    • 要么  x1 < x2 ,
    • 要么  x1 == x2 且  y1 < y2 。
  • ⌊val⌋ 表示小于等于  val 的最大整数(向下取整函数)。

示例 1: alt

输入:towers = [[1,2,5],[2,1,7],[3,1,9]], radius = 2

输出:[2,1]

解释:
坐标 (2, 1) 信号强度之和为 13
- 塔 (2, 1) 强度参数为 7 ,在该点强度为 ⌊7 / (1 + sqrt(0)⌋ = ⌊7⌋ = 7
- 塔 (1, 2) 强度参数为 5 ,在该点强度为 ⌊5 / (1 + sqrt(2)⌋ = ⌊2.07⌋ = 2
- 塔 (3, 1) 强度参数为 9 ,在该点强度为 ⌊9 / (1 + sqrt(1)⌋ = ⌊4.5⌋ = 4
没有别的坐标有更大的信号强度。

示例 2:

输入:towers = [[23,11,21]], radius = 9

输出:[23,11]

解释:由于仅存在一座信号塔,所以塔的位置信号强度最大。

示例 3:

输入:towers = [[1,2,13],[2,1,7],[0,1,9]], radius = 2

输出:[1,2]

解释:坐标 (1, 2) 的信号强度最大。

提示:

模拟

观察数据范围:无论是 towers 数组大小、坐标 的值域大小,还是最远距离 k = radius,取值均不超过 50

因此我们可以直接采用「模拟」的方式进行求解,而不会面临 TLEMLE 的风险。

具体的,我们建立一个大小为 的棋盘 g,用于记录每个坐标点的信号值,即 代表坐标 的信号值为 x

其中 的大小是利用了「任意坐标 的取值范围不超过 」,同时「最远距离 不超过 」并且「最终答案为非负坐标」而定。

随后,我们可以枚举所有 ,并检查以该塔为中心点,大小为 的矩阵中的所有点(该塔所能贡献信号的所有坐标均落在矩阵中),枚举过程中使用变量 val 记录最大信号值,使用 xy 记录答案坐标。

Java 代码:

class Solution {
    public int[] bestCoordinate(int[][] towers, int k) {
        int[][] g = new int[110][110];
        int x = 0, y = 0, val = 0;
        for (int[] t : towers) {
            int a = t[0], b = t[1], q = t[2];
            for (int i = Math.max(0, a - k); i <= a + k; i++) {
                for (int j = Math.max(0, b - k); j <= b + k; j++) {
                    double d = Math.sqrt((a - i) * (a - i) + (b - j) * (b - j));
                    if (d > k) continue;
                    g[i][j] += Math.floor(q / (1 + d));
                    if (g[i][j] > val) {
                        x = i; y = j; val = g[i][j];
                    } else if (g[i][j] == val && (i < x || (i == x && j < y))) {
                        x = i; y = j;
                    }
                }
            }
        }
        return new int[]{x, y};
    }
}

C++ 代码:

class Solution {
public:
    vector<intbestCoordinate(vector<vector<int>>& towers, int k) {
        const int n = 110;
        vector<vector<int>> g(n, vector<int>(n, 0));
        int x = 0, y = 0, val = 0;
        for (const auto& t : towers) {
            int a = t[0], b = t[1], q = t[2];
            for (int i = max(0, a - k); i <= a + k; ++i) {
                for (int j = max(0, b - k); j <= b + k; ++j) {
                    double d = sqrt((a - i) * (a - i) + (b - j) * (b - j));
                    if (d > k) continue;
                    g[i][j] += floor(q / (1.0 + d));
                    if (g[i][j] > val) {
                        x = i; y = j; val = g[i][j];
                    } else if (g[i][j] == val && (i < x || (i == x && j < y))) {
                        x = i; y = j;
                    }
                }
            }
        }
        return vector<int>{x, y};
    }
};

Python 代码:

class Solution:
    def bestCoordinate(self, towers: List[List[int]], k: int) -> List[int]:
        g = [[0] * 110 for _ in range(110)]
        x, y, val = 000
        for (a, b, q) in towers:
            for i in range(max(0, a - k), a + k + 1):
                for j in range(max(0, b - k), b + k + 1):
                    d = math.sqrt((a - i) * (a - i) + (b - j) * (b - j))
                    if d > k:
                        continue
                    g[i][j] += int(q / (1 + d))
                    if g[i][j] > val:
                        val, x, y = g[i][j], i, j
                    elif g[i][j] == val and ((i < x or (i == x and j < y))):
                        x, y = i, j
        return [x, y]

TypeScript 代码:

function bestCoordinate(towers: number[][], k: number): number[] {
    const g = new Array<Array<number>>(110)
    for (let i = 0; i < 110; i++) g[i] = new Array<number>(110).fill(0)
    let x = 0, y = 0, val = 0
    for (const t of towers) {
        const a = t[0], b = t[1], q = t[2]
        for (let i = Math.max(0, a - k); i <= a + k; i++) {
            for (let j = Math.max(0, b - k); j <= b + k; j++) {
                const d = Math.sqrt((a - i) * (a - i) + (b - j) * (b - j))
                if (d > k) continue
                g[i][j] += Math.floor(q / (1 + d))
                if (g[i][j] > val) {
                    x = i; y = j; val = g[i][j]
                } else if (g[i][j] == val && ((i < x) || (i == x && j < y))) {
                    x = i; y = j
                }
            }
        }
    }
    return [x, y]
}
  • 时间复杂度:需要 的复杂度枚举所有的塔 ;对于每座塔,我们需要枚举以该塔为中心点,大小为 的矩阵中的所有坐标。整体复杂度为
  • 空间复杂度: ,其中 为棋盘大小

最后

给大伙通知一下 📢 :

全网最低价 LeetCode 会员目前仍可用 ~

📅 年度会员:有效期加赠两个月!!; 季度会员:有效期加赠两周!!

🧧 年度会员:获 66.66 现金红包!!; 季度会员:获 22.22 现金红包!!

🎁 年度会员:参与当月丰厚专属实物抽奖(中奖率 > 30%)!!

专属链接:leetcode.cn/premium/?promoChannel=acoier

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

欢迎关注,明天见。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公告:关于博主的重要通知

大家好&#xff0c;我是博主夏目。 本期不分享知识&#xff0c;博主想说明一下博主的一些重要提示。 分享的内容&#xff0c;从不收费&#xff0c;也未向任何人进行收费。 意在分享知识&#xff0c;传播文化&#xff0c;结交更多志同道合的朋友。 截至目前&#xff0c;从未…

企业数据资产入表之数据资产管理【AMT企源】

题记&#xff1a; 近几年以来&#xff0c;我国数字经济占GDP的比重逐年提高&#xff0c;数据资源在经济发展中的重要作用愈发凸显。在数字时代&#xff0c;数据是新型生产要素&#xff0c;也是企业未来的战略性资源。数据驱动创新&#xff0c;驱动经济提质增效&#xff0c;催化…

R包Colorfindr识别图片颜色|用刀剑神域方式打开SCI科研配色

1.前言 最近忙里偷闲&#xff0c;捣鼓一下配色&#xff0c;把童年回忆里的动漫都搬进来&#xff0c;给科研信仰充值吧&#xff5e; 提取颜色之前写过一个Py的&#xff0c;那个很准确不过调参会有点麻烦。这里分享一个比较懒人点的R包吧&#xff0c;虽然会有一定误差&#xff…

【JavaScript】P3 JavaScipt 注释方法、结束符、输入输出

小结&#xff1a; Js 注释&#xff1a; 单行注释&#xff1a;//多行注释&#xff1a;/* */ Js 结束符&#xff1a; 分号; 可以加也可以不加 Js 输入输出&#xff1a; 输入&#xff1a;prompt()输出&#xff1a;document.write() 在页面中打印&#xff0c;console.log() 在控制…

【教程】PaddleOCR高精度文字识别

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ PaddleOCR/doc/doc_ch/quickstart.md at main PaddlePaddle/PaddleOCR GitHub 安装 pip install paddlepaddle -i https://mirror.baidu.com/pypi/s…

【全开源】Java养老护理助浴陪诊小程序医院陪护陪诊小程序APP源码

打造智慧养老服务新篇章 一、引言&#xff1a;养老护理的数字化转型 随着老龄化社会的到来&#xff0c;养老护理需求日益凸显。为了更好地满足老年人及其家庭的需求&#xff0c;我们推出了养老护理助浴陪诊小程序系统源码。该系统源码旨在通过数字化技术&#xff0c;优化养老…

MGR集群模拟故障切换

说明&#xff1a; 1、MGR集群搭建起来&#xff0c;但不知道是否能进行启动切换&#xff0c;故要手动模拟故障并且验证 2、停止主库master服务&#xff0c;登录mysql查看MGR是否进行自动切换。 3、主库切换完成以后&#xff0c;手动将宕机的服务器添加到MGR集群中。 一、模拟故障…

常用有限元仿真工作站服务器推荐

1、超强性能&#xff0c;AMD 256核心&#xff0c;512线程&#xff0c;768GB满通道内存 CPU&#xff1a;2颗128核心 2.25GHz AMD EPYC 9754 内存&#xff1a;24根32GB DDR5 4800MHz ECC REG 硬盘&#xff1a;1块3.84TB U.2 SSD系统盘1块 16TB SATA数据盘 GPU&#xff1a;1块…

Android刮刮卡自定义控件

效果图 刮刮卡自定义控件 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import …

2.开发环境介绍

开发环境介绍三种&#xff1a;第一种是在线开发环境、第二种是Windows下的开发环境、第三种是Linux下的开发环境。 1.在线开发环境 2.Windows下的开发环境 用的比较多的是Devc&#xff0c;新手适合使用&#xff0c;上手快&#xff0c;简单&#xff0c;方便。 Devc使用&#x…

Pushmall共享分销电商SaaS版2024年 5月模块开发优化完成

Pushmall共享分销电商 2024年 5月模块开发优化完成 1、**实现SaaS框架业务&#xff1a;**多租户、多商家、多门店&#xff0c;及商家入驻、商品管理。 2、租户小程序管理&#xff1a;对租户的小程序业务管理。 3、店铺小程序管理&#xff1a;对租户多店铺小程序绑定。 4、会员分…

机会就在眼前!2025-CISP深圳国际体育展的招展工作火热持续中...

2025-CISP中国&#xff08;深圳&#xff09;国际体育展的招展工作火热持续中&#xff0c;凭借越来越深远的影响力以及前两届的成功举办经验&#xff0c;展位多半已被“抢购”。但小编的同事们同时又反映出一个问题&#xff1a;有一批老展商和新展商已有明确的参展意向&#xff…

FTP协议——Pure-Ftpd安装(Linux)

1、简介 Pure-FTPd是一个高效、免费且开源的FTP服务器软件&#xff0c;广泛应用于各种Unix/Linux系统。它以其易用性、高安全性和功能丰富而闻名&#xff0c;适用于个人和企业的文件传输需求。 2、步骤 环境&#xff1a;Ubuntu 22.04.4 下载地址&#xff1a;Index of /pub/p…

选择快充时代下的理想充电器与电压诱骗芯片PW6606

随着科技的不断进步&#xff0c;我们的电子设备对于充电速度和效率的要求越来越高。在快充技术迅猛发展的今天&#xff0c;了解不同类型的充电器及其对应的快充协议&#xff0c;以及如何选择适合的电压诱骗芯片&#xff0c;对于提升充电体验和保障设备安全显得尤为重要。 一、快…

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

如何搭建雾锁王国多人联机服务器,搭建教程分享

雾锁王国&#xff08;Enshrouded&#xff09;是一款融合了生存、制作以及动作RPG战斗的游戏&#xff0c;2024年1月24日在Steam平台以抢先体验形式发售&#xff0c;支持中文。游戏背景设定在一个基于体素构筑的辽阔大陆上。玩家将在这个开放世界中自由选择前进的方向&#xff0c…

你知道【无犯罪记录证明】怎么开具吗?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 有些事情没有经历过&#xff0c;就不会知道&#xff0c;经历过一次也就晓得了。 所谓见多识广&#xff0c;很多就是见过或者听说过&#xff0c;像刘姥姥进大观园&#xff0c;很多事物是没见过&#xff0c;才会闹出很多…

升级 JDK17 一个不可拒绝的理由!

插&#xff1a; AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家(前言 – 人工智能教程 ) 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

Java入门-java的集合框架

集合概念 集合&#xff0c;有时也称作容器(Container), 是对象的持有者&#xff0c;它们可以有助于高效访问的方式存储的组织对象。以生活中的案例为例&#xff1a; 集合就像装衣服的柜子&#xff0c;衣服就是集合中的元素。 集合框架图 Collection中每次操作的都是一个对象&a…

【Python编程】JetBrains PyCharm IDE专业版 学生优惠过期怎么办?【妥协的解决方法】

写在前面 笔者临近硕士毕业&#xff0c;用了7年左右的JB学生包终于过期了&#xff08;依依不舍&#xff09;。。。之前用得顺手的PyCharm&#xff0c;WebStorm&#xff0c;CLion&#xff08;专业版&#xff09;等等IDE都暂时告别了。笔者无意以个人身份购买许可证&#xff0c;…