这才多久,ChatGPT-4o 又被碾压了?

大模型皇位易主?

昨天,OpenAI 的竞争对手 Anthropic 发布了其最强大的 AI 模型:Claude 3.5 Sonnet

目前,Claude 3.5 Sonnet 已经在 Claude.ai 和 Claude iOS 应用程序上免费提供。

据 Anthropic 号称,Claude 3.5 Sonnet 在阅读理解、推理、数学 和 编码等众多基准测试中,只有数学方面落后于 ChatGPT 4o。

还贴出了具体的对比数据:

alt
alt

除了发布了新版模型以外,Anthropic 还做了一些很讨好用户的用户体验优化,例如 "Artifacts" 功能。

所谓的 Artifacts 功能,是指当用户要求 Claude 生成代码片段、文本文档或网站设计等内容时,这些 Artifacts 会出现在他们对话旁边的专用窗口中。

相当于一个动态工作区,用户可以在其中实时查看、编辑和构建生成内容的实际效果。

...

当然了,想要在测试中赢过 ChatGPT 是相对容易的,几乎每隔一段时间,我们就会听到这样的新闻。

但想要在实际使用体验上超过 ChatGPT,是很难的。

大家感兴趣也可以体验一下,目前号称最强模型的 Claude 3.5 Sonnet:

https://claude.ai

...

回归主线。

来一道和「腾讯」相关的算法原题。

题目描述

平台:LeetCode

题号:658

给定一个排序好的数组 arr,两个整数 kx ,从数组中找到最靠近 x(两数之差最小)的 k 个数。

返回的结果必须要是按升序排好的。

整数 a 比整数 b 更接近 x 需要满足:

  • |a - x| < |b - x| 或者
  • |a - x| == |b - x|a < b

示例 1:

输入:arr = [1,2,3,4,5], k = 4, x = 3

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

示例 2:

输入:arr = [1,2,3,4,5], k = 4, x = -1

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

提示:

  • arr 按升序排列

二分 + 双指针

容易想到先通过「二分」找到与 x 差值最小的位置 idx,然后从 idx 开始使用「双指针」往两边进行拓展(初始化左端点 ,右端点 ),含义为 范围内子数组为候选区间,不断根据两边界与 x 的差值关系进行扩充,直到候选区间包含 k 个数。

Java 代码:

class Solution {
    public List<Integer> findClosestElements(int[] arr, int k, int x) {
        int n = arr.length, l = 0, r = n - 1;
        while (l < r) {
            int mid = l + r + 1 >> 1;
            if (arr[mid] <= x) l = mid;
            else r = mid - 1;
        }
        r = r + 1 < n && Math.abs(arr[r + 1] - x) < Math.abs(arr[r] - x) ? r + 1 : r;
        int i = r - 1, j = r + 1;
        while (j - i - 1 < k) {
            if (i >= 0 && j < n) {
                if (Math.abs(arr[j] - x) < Math.abs(arr[i] - x)) j++;
                else i--;
            } else if (i >= 0) {
                i--;
            } else {
                j++;
            }
        }
        List<Integer> ans = new ArrayList<>();
        for (int p = i + 1; p <= j - 1; p++) ans.add(arr[p]);
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    vector<intfindClosestElements(vector<int>& arr, int k, int x) {
        int n = arr.size(), l = 0, r = n - 1;
        while (l < r) {
            int mid = l + r + 1 >> 1;
            if (arr[mid] <= x) l = mid;
            else r = mid - 1;
        }
        r = (r + 1 < n && abs(arr[r + 1] - x) < abs(arr[r] - x)) ? r + 1 : r;
        int i = r - 1, j = r + 1;
        while (j - i - 1 < k) {
            if (i >= 0 && j < n) {
                if (abs(arr[j] - x) < abs(arr[i] - x)) j++;
                else i--;
            } else if (i >= 0) {
                i--;
            } else {
                j++;
            }
        }
        vector<int> ans;
        for (int p = i + 1; p <= j - 1; p++) ans.push_back(arr[p]);
        return ans;
    }
};

Python 代码:

class Solution:
    def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
        n = len(arr)
        l, r = 0, n - 1
        while l < r:
            mid = l + r + 1 >> 1
            if arr[mid] <= x: l = mid
            else: r = mid - 1
        r = r + 1 if r + 1 < n and abs(arr[r + 1] - x) < abs(arr[r] - x) else r
        i, j = r - 1, r + 1
        while j - i - 1 < k:
            if i >= 0 and j < n:
                if abs(arr[j] - x) < abs(arr[i] - x):
                    j += 1
                else:
                    i -= 1
            elif i >= 0:
                i -= 1
            else:
                j += 1
        return arr[i + 1:j]

TypeScript 代码:

function findClosestElements(arr: number[], k: number, x: number): number[] {
    let n = arr.length, l = 0, r = n - 1
    while (l < r) {
        const mid = l + r + 1 >> 1
        if (arr[mid] <= x) l = mid
        else r = mid - 1
    }
    r = r + 1 < n && Math.abs(arr[r + 1] - x) < Math.abs(arr[r] - x) ? r + 1 : r
    let i = r - 1, j = r + 1
    while (j - i - 1 < k) {
        if (i >= 0 && j < n) {
            if (Math.abs(arr[j] - x) < Math.abs(arr[i] - x)) j++
            else i--
        } else if (i >= 0) {
            i--
        } else {
            j++
        }
    }
    return arr.slice(i + 1, j);
};
  • 时间复杂度:查找分割点复杂度为 ;从分割点往两边拓展复杂度为 。整体复杂度为
  • 空间复杂度:

最后

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

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

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

欢迎关注,明天见。

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

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

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

相关文章

全流程FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟实践技术应用

FVCOM因其独特的优点&#xff0c;成为研究海洋动力过程、污染物扩散、水质变化等问题的重要工具。作为一种基于有限体积法的数值模型&#xff0c;以其精确的计算方法和强大的适应性&#xff0c;广泛应用于水环境、潮流、温盐、波浪、泥沙等多种过程的模拟。FVCOM采用非结构化网…

2005年上半年软件设计师【下午题】试题及答案

文章目录 2005年上半年软件设计师下午题--试题2005年上半年软件设计师下午题--答案2005年上半年软件设计师下午题–试题

Spring Boot 多线程例子

在Spring Boot中&#xff0c;多线程可以通过Java的并发工具来实现。以下是一些常见的多线程实现方法&#xff1a; 1. 使用Async注解和CompletableFuture&#xff1a; 首先&#xff0c;需要在Spring Boot应用的主类上添加EnableAsync注解&#xff0c;以启用异步支持。 java Spr…

自动化测试:Autorunner的使用

自动化测试&#xff1a;Autorunner的使用 一、实验目的 1、掌握自动化测试脚本的概念。 2、初步掌握Autorunner的使用 二、Autorunner的简单使用 autoRunner使用方法 新建项目 a) 在项目管理器空白区域,右键鼠标,选择新建项目 b) 输入项目名后,点击[确定]. 在初次打开aut…

中国机器人产业崛起,德国市场面临30%的份额挑战

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 随着科技的不断进步&#xff0c;机器人行业正迎来前所未有的发展机遇。令人震惊的是&#xff0c;根据最新统计数据&#xff0c;中国机器人产业在…

PHP面试宝典之Laravel篇

Laravel简介 Laravel是一种优雅的PHP Web应用程序框架&#xff0c;它具有简洁、优雅的语法&#xff0c;并提供了强大的工具用于构建大型、健壮的应用程序。Laravel采用了现代PHP开发的最佳实践&#xff0c;因此深受开发者欢迎。 Laravel面试常见问题 1. 什么是Laravel中间件…

echarts实现折线图点击添加标记

文章目录 背景一、代码示例 背景 业务场景体现在功能层面主要两点&#xff0c; 折线图表设置点击事件点击事件与图标渲染标记绑定 对于节点没有被添加标记的可以&#xff0c;弹框提示添加标记&#xff0c;并提供标记内容输入框&#xff0c;已经添加过标记的点&#xff0c;点…

策略模式编程

接口定义&#xff1a; public interface ProcessParserStrategy { List<ProcessInfo> parser(String osType, String processInfo); String getApp(); } public interface ConfigParserStrategy { List<ConfigInfo> parser(String configInfo); String getConfigT…

MongoDB安装配置教程(详细版)

MongoDB安装配置教程&#xff08;详细版&#xff09; 1.下载与安装2.环境配置3.开机自启动 1.下载与安装 下载MongoDB数据库地址&#xff1a;&#xff08;会自动检测电脑版本&#xff0c; 下载合适的MongoDB 版本号&#xff09; https://www.mongodb.com/try/download/commun…

openstack-同一物理机中透传不同GPU时的nova配置记录

文章目录 前言一、不同加速卡的型号信息二、计算节点增加配置信息1.nova-compute服务的nova.conf 三、控制节点增加配置信息1.nova-conductor服务的nova.conf2.nova-scheduler服务的nova.conf3.nova-api服务的nova.conf 四、准备实例模版五、进行测试&#xff0c;创建虚拟机、检…

qmt量化交易策略小白学习笔记第47期【qmt编程之期货仓单】

qmt编程之获取期货数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 期货仓单 提示 1…

npm语义化版本和版本运算符

版本号组成 一个完整的版本号&#xff0c;由三部分组成&#xff1a;主版本号&#xff08;major&#xff09;、次版本号(minor)、修订版本号(patch)&#xff0c;简称X.Y.Z&#xff0c;具体含义&#xff1a; 主版本号&#xff08;major&#xff09;&#xff1a;项目&#xff08…

虚拟机空间满了怎么办?

只剩143.8MB 1. 清理不必要的文件和软件 首先尝试清理系统中的不必要文件和软件&#xff0c;以释放一些空间。 清理包缓存 sudo apt-get clean sudo apt-get autoclean sudo apt-get autoremove 查找大文件 使用以下命令查找系统中的大文件&#xff0c;并删除不必要的文…

2024广东省职业技能大赛云计算赛项实战——Redis主从架构

Redis主从架构 前言 Redis是一个开源的内存数据结构存储系统&#xff0c;一般用于作为数据库、缓存和消息代理使用&#xff0c;而主从架构是许多分布式系统中常见的设计模式&#xff0c;用来提高系统的性能、可靠性和扩展性。 虚拟机使用的是自行创建的CentOS7&#xff0c;如…

GaussDB关键技术原理:高性能(一)

引言 对数据库性能进行优化是令人激动的&#xff0c;无论是对其进行性能需求分析、性能需求设计、性能问题定个位都是富于变化又充满挑战的工作&#xff0c;本章围绕“数据库性能”进行全面系统化的介绍&#xff0c;首先从数据库在现代软件栈中所处的位置出发&#xff0c;介绍…

ip地址怎么写才是的对的?合法ip地址正确的格式

IP地址怎么写才是的对的&#xff1f;在互联网的世界里&#xff0c;IP地址就像是我们生活中的门牌号码&#xff0c;它是每个设备在网络中的唯一标识。正确的书写IP地址对于确保网络通信的顺畅至关重要。本文将带您了解合法IP地址的正确格式与书写规范&#xff0c;并深入探讨其在…

数据采集之二主一从,485总线共享器

产品概述 485总线共享器示意图 功能示意图 DAQ-GP-485HUB是上海数采物联网推出的一款 RS485总线多路复用共享数据处理器&#xff0c;是一款高性能的通讯设备&#xff0c;专门针对两台主机和 一台从机通讯时导致的数据冲突而设计。在实际工业控制和监控场景中&#xff0c;多个主…

IT运维服务方案

在现代企业中&#xff0c;信息系统已经成为业务运营的核心。为了确保这些系统的高效、稳定运行&#xff0c;制定一套完善的IT运维服务方案至关重要。本文将探讨如何设计和实施一个高效的IT运维服务方案&#xff0c;确保信息系统的持续健康运行。 IT运维服务的目标 IT运维服务…

43.商城系统(二十四):kubernate基础架构,集群搭建

目录 一、为什么要用k8s 1.不同时代的部署 2.k8s的特点 二、k8s的基本架构 1.整体架构 2.主节点架构 3.node节点 4.整体流程 三、K8S集群搭建 1.先克隆三个虚拟机 2.设置NAT网络 3.配置虚拟机前置环境 4.安装Docker、kubeadm、kubelet、kubectl (1)安装docker …

Protobuf Reflection 反射使用

Protobuf Reflection 反射使用 源码地址&#xff1a;https://github.com/Michaelzhouisnotwhite/DemoCXXCode/blob/main/src/protobuf-reflection/main.cpp 首先创建一个proto文件&#xff1a; syntax "proto3";// option optimize_for LITE_RUNTIME; // 不使用M…