当前位置: 首页 > news >正文

合并K个升序链表

目录

合并 K 个升序链表 

解题思路 

ListNode 数组方式给出 k 个链表

ArrayList 方式给出 k 个链表 

ArrayList常见操作


合并 K 个升序链表 

题目描述

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 1

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

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

        有两种方式给出 k 个链表,一种是以 ListNode 数组的方式给出链表,另一种方式是以 List Node 顺序表的方式给出,本文以 合并 k 个升序链表为例,顺便复习 ArrayList

解题思路 

        对于 k 个有序链表的合并,其实就相当于对这 k 个链表首先两两进行合并,得到合并后的     k / 2个链表,之后继续对这 k / 2 的链表进行合并,得到 k / 4 个链表,对其以此类推一直进行合并,直到为数量为 1 为止,这个链表就是 k 个链表合并后的结果。 

        其关键在于:1、如何对两个链表进行合并,对于该问题可以在leetcode中练习:合并两个有序链表,在该题目中,我们将两个链表进行合并封装成一个函数;2、如何对 1 中的函数传参,这是每次传入哪两个链表,这里有两种方式:①一种是将相邻的两个链表传入,②另一种是每次传入最左边和最右边这两个链表。

ListNode 数组方式给出 k 个链表

        以下代码给出了两种传入两个链表的方式,第一种将相邻的两个链表传入借助 for 循环即可实现,第二种每次传入最左边和最右边这两个链表,借助双指针即可实现,具体见下列代码. 

    /*** 每次传入最左边和最右边的链表*/public ListNode mergeKLists(ListNode[] lists) {if (lists == null || lists.length == 0) {return null;}int len = lists.length;while (len > 1) {int index = 0;int left = 0;int right = len - 1;while (left < right) {lists[index++] = merge(lists[left], lists[right]);left++;right--;}if (left == right) {lists[index++] = lists[left];}len = index;}return lists[0];}/*** 每次将相邻的两个链表传入*/public ListNode mergeKLists(ListNode[] lists) {if (lists == null || lists.length == 0) {return null;}int len = lists.length;while (len > 1) {int index = 0;for (int i = 0; i < len; i += 2) {if (i == len - 1) {lists[index++] = lists[i];} else {lists[index++] = merge(lists[i], lists[i + 1]); }}len = index;}return lists[0];}private ListNode merge(ListNode head1, ListNode head2) {if (head1 == null || head2 == null) {return head1 == null ? head2 : head1;}ListNode newHead = new ListNode(-1); // 虚拟节点ListNode cur = newHead;while (head1 != null && head2 != null) {if (head1.val > head2.val) {cur.next = head2;head2 = head2.next;cur = cur.next;} else {cur.next = head1;head1 = head1.next;cur = cur.next;}}cur.next = head1 == null ? head2 : head1;return newHead.next;}

ArrayList 方式给出 k 个链表 

ArrayList常见操作

1. boolean add(E e)    // 尾插 e 

2. void add(int index, E e)  // 在 index 位置插入 e

3. E remove(int index)  // 删除 index 位置的元素

4. E get(int index)  // 获取 index 下标的元素

5. E set(int index, E e)  // 将 index 下标的值改为 e

6. void clear()  // 清空所有元素

7. boolean contains(Object o)  // 判断 o 是否在线性表中

8. int indexOf(Object o)  // 返回第一个 o 的下标

9. int lastIndexOf(Object o)  // 返回最后一个 o 的下标

        对于该题, 可以以 ArrayList 的方式传入要合并的链表, 实现思路与以数组方式传入链表一样,但需要熟悉 ArrayList 相关的操作,具体代码实现方式如下:

    /*** 每次传入最左边和最右边的链表*/public static ListNode mergeKLists(ArrayList<ListNode> lists) {if (lists == null || lists.size() == 0) {return null;}int len = lists.size();while (len > 1) {int index = 0;int left = 0;int right = len - 1;while (left < right) {lists.set(index++, merge(lists.get(left), lists.get(right)));left++;right--;}if (left == right) {lists.set(index++, lists.get(left));}len = index;}return lists.get(0);}/*** 每次将相邻的两个链表传入*/public static ListNode mergeKLists2(ArrayList<ListNode> lists) {if (lists == null || lists.size() == 0) {return null;}int len = lists.size();while (len > 1) {int index = 0;for (int i = 0; i < len; i += 2) {if (i == len - 1) {lists.set(index++, lists.get(i));} else {lists.set(index++, merge(lists.get(i), lists.get(i + 1)));}}len = index;}return lists.get(0);}private static ListNode merge(ListNode head1, ListNode head2) {if (head1 == null || head2 == null) {return head1 == null ? head2 : head1;}ListNode newHead = new ListNode(-1); // 虚拟节点ListNode cur = newHead;while (head1 != null && head2 != null) {if (head1.val > head2.val) {cur.next = head2;head2 = head2.next;cur = cur.next;} else {cur.next = head1;head1 = head1.next;cur = cur.next;}}cur.next = head1 == null ? head2 : head1;return newHead.next;}

 

 

相关文章:

合并K个升序链表

目录 合并 K 个升序链表 解题思路 ListNode 数组方式给出 k 个链表 ArrayList 方式给出 k 个链表 ArrayList常见操作 合并 K 个升序链表 题目描述 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后…...

UART、SPI、IIC复习总结

一、UART 1、UART和USART的异同&#xff1f; 相同点 基本功能&#xff1a;都是用于串行通信的数据收发设备&#xff0c;能够实现数据在不同设备之间的传输。在异步通信模式下&#xff0c;二者的工作方式相似&#xff0c;都使用起始位、数据位、校验位&#xff08;可选&#…...

【AWS入门】Amazon Bedrock简介

【AWS入门】Amazon Bedrock简介 [AWS Essentials] Brief Introduction Amazon Bedrock By JacksonML 1. 引言 Amazon Bedrock&#xff0c;在AWS官网&#xff0c;映入眼帘的第一句话就是&#xff0c;“使用基础模型构建和扩展生成式人工智能应用程序的最简单方法”。如下图所…...

报告精读:华为2024年知行合一通信行业数据治理实践指南报告【附全文阅读】

《华为 2024 年知行合一通信行业数据治理实践指南报告》聚焦通信行业数据治理&#xff0c;指出在数字化转型背景下&#xff0c;通信行业面临数据量庞大、类型多样、时效要求高、价值密度低、安全要求高等特点与数据质量、汇聚、开放等难点。报告提出通信行业数据治理需构建包含…...

Eigen与OpenCV矩阵操作全面对比:最大值、最小值、平均值

功能对比总表 功能Eigen 方法OpenCV 方法主要区别最大值mat.maxCoeff(&row, &col)cv::minMaxLoc(mat, NULL, &maxVal, NULL, &maxLoc)Eigen需要分开调用&#xff0c;OpenCV一次获取最小值mat.minCoeff(&row, &col)cv::minMaxLoc(mat, &minVal, NU…...

机器学习(12)——LGBM(1)

文章目录 LightGBM算法详解1. 算法背景2. 核心创新2.1 基于直方图的决策树算法2.2 单边梯度采样(GOSS)2.3 互斥特征捆绑(EFB) 3. 算法细节3.1 树生长策略3.2 特征并行与数据并行3.3 类别特征处理 4. 关键参数说明4.1 核心参数4.2 控制速度参数4.3 控制过拟合参数 5. 与XGBoost对…...

深入理解TCP与UDP:协议对比、头部结构与连接管理

一、TCP与UDP的核心区别 特性TCPUDP连接特性面向连接&#xff08;三次握手建立连接&#xff09;无连接&#xff0c;直接传输数据可靠性通过确认重传、排序、流控保证可靠尽力交付&#xff0c;不保证数据到达流量控制支持滑动窗口机制调节发送速率不支持数据分段支持大数据分段…...

Flask快速入门和问答项目源码

Flask基础入门 源码&#xff1a; gitee&#xff1a;我爱白米饭/Flask问答项目 - 码云 目录 1.安装环境2.【debug、host、port】3.【路由params和query】4.【模板】5.【静态文件】6.【数据库连接】6.1.安装模块6.2.创建数据库并测试连接6.3.创建数据表6.4.ORM增删改查 6.5.ORM模…...

python创建flask项目

好的&#xff0c;我会为你提供一个使用 Flask、pg8000 和 Pandas 构建的后台基本框架&#xff0c;用于手机理财产品 App 的报表分析接口。这个框架将包含异常处理、模块化的结构以支持多人协作&#xff0c;以及交易分析和收益分析的示例接口。 项目结构: financial_report_ap…...

Flink 的窗口机制

&#x1fa9f; 1. 基于时间驱动的滚动时间窗口&#xff08;Tumbling Time Window - Time-based&#xff09; ✅ 定义&#xff1a; 每隔固定的时间周期开启一个新的窗口。窗口之间不重叠。 &#x1f552; 示例&#xff1a; DataStream<Tuple2<String, Integer>>…...

STM32 OTA 中断向量表重定向

在STM32的OTA&#xff08;Over-the-Air&#xff09;升级中&#xff0c;​中断向量表重定向是关键技术需求&#xff0c;其核心原因在于STM32的硬件架构和固件运行机制。以下从原理、实现方式及必要性三个角度详细分析&#xff1a; 一、中断向量表的作用与默认机制 ​中断向量表的…...

先说爱的人为什么先离开

2025年5月19日&#xff0c;15~23℃&#xff0c;贼好的一天&#xff0c;无事发生 待办&#xff1a; 2024年税务申报 《高等数学2》取消考试资格学生名单 《物理[2]》取消考试资格名单 5月24日、25日监考报名 《高等数学2》备课 《物理[2]》备课 职称申报材料 教学技能大赛PPT 遇…...

OnlyOffice秘籍系列.6-表格保护功能详解-灵活设置单元格的权限

最近很多用户在咨询是否可以提供一个灵活控制表格权限的在线协同编辑表格,这里和大家分享如果用OnlyOffice在线表格实现。 OnlyOffice 是一款功能强大的在线协作办公套件&#xff0c;其表格工具&#xff08;Spreadsheet Editor&#xff09;提供了完善的数据保护机制&#xff0c…...

LLM笔记(八)Transformer学习

文章目录 1. Transformer 整体架构2. 核心组件详解2.1. 输入部分 (Input Embedding & Positional Encoding)2.2. 注意力机制 (Attention Mechanism)2.2.1. Padding Mask (填充掩码)2.2.2. Sequence Mask (Look-ahead Mask / Subsequent Mask / Causal Mask) 2.3. Multi-Hea…...

Vue 3 中使用 md-editor-v3 的完整实例markdown文本

下面我将提供一个完整的 Vue 3 项目中使用 md-editor-v3 的 Markdown 编辑器实现&#xff0c;包含常用功能和最佳实践。 1. 基础实现 安装依赖 npm install md-editor-v3也可以是pnpm安装 pnpm install md-editor-v3基础编辑器组件 (BasicEditor.vue) <template> &l…...

OpenCV-图像分割

实验1 实验内容 上述代码通过使用OpenCV和Matplotlib库来执行以下操作&#xff1a; 读取名为’kt.jpg’的图像文件&#xff0c;并存储在变量img中。将图像img转换为灰度图像&#xff0c;将其存储在变量gray中。使用cv2.threshold函数对灰度图gray进行阈值化处理&#xff0c;…...

Vue-计算属性

计算属性 案例 输入姓、名&#xff0c; 全名称姓名 实现 插值语法 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>计算属性与监视</title><!-- 引入Vue --><script type&…...

16. 通用配置文件开发.py

16. 通用配置文件开发.py 一、配置文件架构设计 1.1 模块化结构规划 #mermaid-svg-Iuex47psGWeZj6XQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Iuex47psGWeZj6XQ .error-icon{fill:#552222;}#mermaid-svg-Iu…...

Python训练营打卡 Day29

复习日&#xff1a;类的装饰器 知识点回顾 类的装饰器&#xff1a;餐厅升级计划 假设你是一家餐厅的老板&#xff0c;餐厅已经运营了一段时间&#xff0c;但你希望提升服务质量&#xff0c;比如在每道菜上增加一些特别的服务&#xff08;比如日志记录、额外的装饰等&#xff09…...

解决 Tailwind CSS 代码冗余问题

解决 Tailwind CSS 代码冗余问题 Tailwind CSS 确实可能导致 HTML 类名过长和冗余的问题&#xff0c;以下是几种有效的解决方案&#xff1a; 1. 使用 apply 指令提取重复样式 /* 在CSS文件中 */ .btn {apply px-4 py-2 rounded-md font-medium; }.card {apply p-6 bg-white …...

【藏经阁】加密机服务完整解决方案,包含客户端+服务端

前言 你是否存在这样的苦恼&#xff0c;数据需要安全存储&#xff0c;但是每个系统大家自己写&#xff0c;很浪费时间。 encryption-local 一个离线版本的金融敏感信息加解密工具&#xff0c;用于数据库敏感信息存储。 离线版本的加解密好处是非常的方便。不过缺点也比较明显…...

互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战

互联网大厂Java求职面试&#xff1a;AI与大模型应用集成及云原生挑战 面试场景设定 郑薪苦是一位具有搞笑风格但技术潜力巨大的程序员&#xff0c;正在接受一位严肃专业的技术总监面试。 第一轮提问 面试官&#xff1a;在我们公司的短视频平台中&#xff0c;需要处理千万级…...

ffmpeg -vf subtitles添加字幕绝对路径问题的解决方法

今天遇到奇怪的问题&#xff0c;老是报 Unable to parse option value Error applying option original_size to filter subtitles: Invalid argument 踩坑很长时间&#xff0c;记录下 因subtitles需要指定绝对路径&#xff0c; 注意点&#xff1a; 外面要用单引号 不能…...

JetBrains IDEA,Android Studio,WebStorm 等IDE 字体出现异常时解决方法

JetBrains IDEA,Android Studio,WebStorm 等IDE 中文字体出现异常&#xff0c;很怪的时候&#xff0c;通常需要设置字体回退才能解决。 需要在 Font 中将字体连写打开&#xff0c;并且设置字体回退为 Microsoft YaHei Ul 只有这样 IDEA 在没有中文字体的样式下&#xff0c;会将…...

鸿蒙AI开发:10-多模态大模型与原子化服务的集成

鸿蒙AI开发&#xff1a;10-多模态大模型与原子化服务的集成 在鸿蒙生态中&#xff0c;多模态大模型与原子化服务的集成是一个重要课题。本文将介绍如何在鸿蒙平台上进行多模态大模型与原子化服务的集成&#xff0c;以及相关的技术细节和实际案例。 鸿蒙AI开发概述 什么是鸿蒙AI…...

信奥赛CSP动态规划入门-最大子段和

针对**“最大子段和”**问题的详细分步解析与程序实现,通过动态规划将大问题分解为小问题: 一、问题拆解步骤 1. 明确问题定义 大问题:在数组[-2,1,-3,4,-1,2,1]中,找到连续子数组的和的最大值。 小问题:以每个位置i结尾的子数组能得到的最大和。 2. 状态定义 定义数组…...

Python爬虫实战:通过PyExecJS库实现逆向解密

1. 核心定义 1.1 PyExecJS 库 PyExecJS 是 Python 的第三方库,通过调用 JavaScript 运行时环境(如 Node.js、PhantomJS),实现 Python 与 JavaScript 的无缝交互。其核心功能包括: JavaScript 代码编译与执行跨语言函数调用与数据传递多引擎支持与自动环境检测1.2 字段加…...

网络安全深度解析:21种常见网站漏洞及防御指南

一、高危漏洞TOP 10 1. SQL注入(SQLi) 原理:通过构造恶意SQL语句突破系统过滤机制 典型场景: - 联合查询注入: union select 1,version(),3--+ - 布尔盲注:and (select substr(user(),1,1)=r) - 时间盲注:;if(now()=sysdate(),sleep(5),0)/ 防御方案: - 严格参数化查…...

web系统安全管理

一、概述 认证、授权是JavaWeb项目的核心部分。 二、相关概念 1、认证Authentication 认证&#xff0c;简单来说&#xff0c;就是确认用户身份的过程&#xff0c;确认“你是谁”&#xff08;验证身份&#xff09;。 2、授权&#xff08;Authorization&#xff09; 授权&…...

相机基础常识

相机基础常识 相机中颜色滤镜的作用&#x1f3a8; 1. **捕捉彩色图像**✅ 最常见的颜色滤镜阵列是 **拜耳滤镜&#xff08;Bayer Filter&#xff09;**&#xff1a; &#x1f50d; 2. **实现特定的图像效果或分析功能**✅ 常见的滤镜类型包括&#xff1a; &#x1f6e0;️ 3. *…...

Python训练营打卡Day29

复习日&#xff1a;类的装饰器 知识点回顾 类的装饰器装饰器思想的进一步理解&#xff1a;外部修改、动态类方法的定义&#xff1a;内部定义和外部定义 1. 类的装饰器 类的装饰器是一种特殊的函数&#xff0c;用于修改或扩展类的行为。它们在类定义时被应用&#xff0c;类似于函…...

不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全

不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全 安全提醒 先备份&#xff1a;/etc/passwd 、/etc/shadow 、/etc/group 、/etc/sudoers 以及 Home 目录。系统账户慎删&#xff1a;rtkit 属于实时调度守护进程 RealtimeKit&…...

基于 Zookeeper 部署 Kafka 集群

文章目录 1、前期准备2、安装 JDK 83、搭建 Zookeeper 集群3.1、下载3.2、调整配置3.3、标记节点3.4、启动集群 4、搭建 Kafka 集群4.1、下载4.2、调整配置4.3、启动集群 1、前期准备 本次集群搭建使用&#xff1a;3 Zookeeper 3 Kafka&#xff0c;所以我在阿里云租了3台ECS用…...

Listener method could not be invoked with the incoming message

问题描述 生产者方代码&#xff1a; private void rollbackOrder(long orderId, CorrelationData correlationData) {rabbitTemplate.convertAndSend("order-rollback-exchange","rollback.order",new QuotaRollbackTO(orderId,null,null),correlationData…...

VueUse/Core:提升Vue开发效率的实用工具库

文章目录 引言什么是VueUse/Core&#xff1f;为什么选择VueUse/Core&#xff1f;核心功能详解1. 状态管理2. 元素操作3. 实用工具函数4. 浏览器API封装5. 传感器相关 实战示例&#xff1a;构建一个拖拽上传组件性能优化技巧与原生实现对比常见问题解答总结 引言 在现代前端开发…...

记录一次win11本地部署deepseek的过程

20250518 win11 docker安装部署 ollama安装 ragflow部署 deepseek部署 文章目录 1 部署Ollama下载安装ollama配置环境变量通过ollama下载模型deepseek-r1:7b 2 部署docker2.1 官网下载amd版本安装2.2 配置wsl2.3 Docker配置&#xff1a;位置代理镜像源 3 部署RAGFlow更换ragfl…...

PrimeVul论文解读-如何构建高质量漏洞标签与数据集

目录 1. 引入2. 现有漏洞识别方案的不足2.1 数据集中label不准2.2 数据重复2.3 测评标准不够好 3. 现有漏洞识别数据集分析3.1 关于现有数据集中label的准确率分析3.2 关于现有数据集中数据泄露&#xff08; Data Leakage&#xff09;情况分析 4. 漏洞识别测评5. PrimeVul数据集…...

现代生活健康养生新视角

在科技飞速发展的今天&#xff0c;我们的生活方式发生巨大转变&#xff0c;健康养生也需要新视角。从光线、声音等生活细节入手&#xff0c;能为健康管理开辟新路径。​ 光线与健康密切相关。早晨接触自然光线&#xff0c;可调节生物钟&#xff0c;提升血清素水平&#xff0c;…...

开启健康生活的多元养生之道

健康养生是一门值得终身学习的学问&#xff0c;在追求健康的道路上&#xff0c;除了常见方法&#xff0c;还有许多容易被忽视却同样重要的角度。掌握这些多元养生之道&#xff0c;能让我们的生活更健康、更有品质。​ 室内环境的健康不容忽视。定期清洁空调滤网&#xff0c;避…...

Flink 并行度的设置

在 Apache Flink 中&#xff0c;并行度&#xff08;Parallelism&#xff09; 是控制任务并发执行的核心参数之一。Flink 提供了 多个层级设置并行度的方式&#xff0c;优先级从高到低如下&#xff1a; &#x1f9e9; 一、Flink 并行度的四个设置层级 层级描述设置方式Operator…...

抖音视频怎么去掉抖音号水印

你是不是经常遇到这样的烦恼&#xff1f;看到喜欢的抖音视频&#xff0c;想保存下来分享给朋友或二次创作&#xff0c;却被抖音号水印挡住了画面&#xff1f;别着急&#xff0c;今天教你几种超简单的方法&#xff0c;轻松去除水印&#xff0c;高清无水印视频一键保存&#xff0…...

类的加载过程详解

类的加载过程详解 Java类的加载过程分为加载&#xff08;Loading&#xff09;、链接&#xff08;Linking&#xff09; 和 初始化&#xff08;Initialization&#xff09; 三个阶段。其中链接又分为验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&…...

运行:MSI Afterburner报错:应用程序无法启动并行配置不正确

从日志中可以看出&#xff0c;MSI Afterburner 运行时因缺少关键依赖组件&#xff08;Microsoft.VC90.MFC&#xff09;导致激活上下文生成失败。这是典型的 Visual C 运行时库缺失/版本不匹配 问题&#xff0c;与您提到的 for %1 in (%windir%\system32\*.dll) do regsvr32.exe…...

基于智能家居项目 ESP8266 WiFi 模块通信过程与使用方法详解

一、ESP8266 简介 ESP8266 是由乐鑫科技(Espressif)推出的一款低功耗、高集成度的 WiFi SoC 芯片。它内置 TCP/IP 协议栈,支持 STA(Station)、AP(Access Point)和 STA+AP 混合模式,可以独立作为主控 MCU 或配合其它主控(如 STM32、Arduino)通过串口通信使用。 常见…...

字节跳动开源通用图像定制模型DreamO,支持风格转换、换衣、身份定制、多条件组合等多种功能~

项目背景分析 图像定制是一个快速发展的领域&#xff0c;包括身份&#xff08;ID&#xff09;、风格、服装试穿&#xff08;Try-On&#xff09;等多种任务。现有研究表明&#xff0c;大规模生成模型在这些任务上表现出色&#xff0c;但大多数方法是任务特定的&#xff0c;难以推…...

Cursor:简单三步提高生成效率

第一步&#xff1a;结构化提示词——像写需求文档一样对话 常见误区&#xff1a;“做个知识管理模块&#xff0c;用SpringBoot。” 问题&#xff1a;AI会陷入迷茫——需要哪些字段&#xff1f;分页怎么做&#xff1f;异常处理是否需要&#xff1f; 正确写法&#xff1a; Note C…...

第二章 苍穹外卖

开发环境搭建_后端环境搭建_熟悉项目结构 constant:存储的是定义好的常量类 context&#xff1a;存储与上下文相关的 enumeration&#xff1a;存储枚举类 exception&#xff1a;存储一些异常 json&#xff1a;处理一些json转换的类 properties&#xff1a;存储一些配置类 …...

【上位机——WPF】命名空间

概述 XAML命名空间实际上是XML命名空间概念的扩展。指定XAML命名空间的技术依赖于XML命名空间语法、使用URL作为命名空间标识符的约定&#xff0c;使用前缀提供从同一标记源中引用多个命名空间的方法&#xff0c;诸如此类&#xff0c;XML命名空间的XAML定义中增加的主要概念是…...

当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强

原论文&#xff1a;s1: Simple test-time scaling 作者&#xff1a;Niklas Muennighoff, Zitong Yang, Weijia Shi等&#xff08;斯坦福大学、华盛顿大学、Allen AI研究所、Contextual AI&#xff09; 论文链接&#xff1a;arXiv:2501.19393 代码仓库&#xff1a;GitHub - simp…...

【聚类】 K-means

K-means 文章目录 K-means1. 算法介绍2. 公式及原理3. 伪代码1. 算法介绍 背景与目标 K-means 是最经典、最常用的原型聚类(prototype-based clustering)算法之一,由 Stuart Lloyd 于1957年提出,1982年被广泛推广。其核心目标是: 将给定的 n n n 个数据点划分为 K K K 个…...