logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

LeetCode 热题 100——day11 滑动窗口最大值

文章摘要 本文探讨了LeetCode 239题“滑动窗口最大值”的三种解法。首先通过单调栈预处理每个元素右侧第一个更大值,实现窗口内快速跳转查找最大值(时间复杂度O(nk));接着采用优先队列维护窗口最大值,利用延迟删除策略(时间复杂度O(n log n));最后提出最优解——单调队列法,仅保留可能成为最大值的候选元素,使时间复杂度降至O(n)。三种方法层层递进,逐步优化空间与时间复杂度,最终实现

文章图片
#leetcode#算法#职场和发展 +2
数据结构排序算法详解(2)——选择排序(附动图)

本文聚焦选择排序体系展开解析,涵盖直接选择排序、堆排序,及与插入排序的对比。首先介绍直接选择排序的概念与实现,说明其时间复杂度为O(n²),并梳理其核心特性;继而讲解堆排序的概念及基于堆结构的实现逻辑,指出其时间复杂度稳定为O(nlogn)、空间复杂度O(1),还提及可用于Top-K问题(效率达O(n+klogn)),同时总结其特性。文章还对比了插入排序与选择排序的差异,附总代码示例辅助实操理解。

文章图片
#数据结构#排序算法#算法 +3
数据结构之初识二叉树(1)——核心概念入门

(1)若规定根结点的层数为1,则一棵非空二叉树的第 i 层上最多有2i-1个结点(2)若规定根结点的层数为1,则深度为 h 的二叉树的最大结点数是2h(3)对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为n2 ,则有 n0=n2 +1第3条如图🟧 (n2=1)/ \/ \ / \

文章图片
#数据结构#c语言#算法 +1
LeetCode 热题 100——day5 盛最多水的容器

摘要: 本文介绍了LeetCode题目《盛最多水的容器》的双指针解法。通过左右指针从数组两端向中间移动,每次计算当前容器的面积(由较短板和宽度决定),并移动较短边以寻找更优解。该方法将时间复杂度优化至O(n),空间复杂度为O(1)。关键在于理解移动较短边的合理性——保留较长边可能获得更大面积。代码简洁高效,体现了贪心思想,适用于同类问题。 关键词: 双指针、盛水容器、贪心算法、LeetCode、O

文章图片
#leetcode#算法#职场和发展 +3
C++入门(算法竞赛类)

这是一篇C++入门指南类文章,核心内容围绕C++基础学习展开:首先介绍工具安装的相关内容,随后聚焦“第一个C++程序”,涵盖基础程序框架、头文件的相关知识、cin与cout的入门(含核心流对象、关键操作符、C++输入输出的优势),以及名字空间的核心作用、std名字空间的概念与两种使用方式;后续还将讲解数据类型、变量和常量、算术操作等内容,最后以结束语收尾,整体是面向C++初学者的基础入门内容。

文章图片
#c++#算法#经验分享
C++的输入输出(上)(算法竞赛类)

本文聚焦算法竞赛场景,讲解C++输入输出相关知识,内容涵盖:先介绍`getchar`与`putchar`的功能、头文件、返回值等细节及二者结合使用的方式;接着提及`scanf`、`printf`及占位符的相关内容;随后讲解`cin`和`cout`的基础用法、连续输入输出操作,并分析其优劣势;还补充了`cout`的格式输出技巧(含控制宽度、数值格式、整数格式、对齐方式等),帮助读者掌握算法竞赛中C+

文章图片
#c++#算法#开发语言 +1
C++ string类从入门到精通:核心用法与实战指南

本文介绍了C++中string类的核心用法,重点对比了C语言字符串的劣势与string类的优势。string类通过封装char*数组,实现了自动内存管理和丰富操作功能。文章详细讲解了字符串的4种构造方式、3种遍历方法(下标访问、迭代器、范围for循环),并强调了容量操作的重要性。作为STL的重要组成部分,string类极大简化了字符串处理,是C++开发者必须掌握的核心工具之一。后续文章将深入剖析s

文章图片
#c++#开发语言#经验分享
【C++进阶】拒绝黑盒!纯手撕 list 底层源码与迭代器高级封装

四、核心接口:增删查改与容量操作 1 插入与删除 list 的灵魂在于插入和删除操作的高效性($O(1)$ 复杂度)。让我们看看如何实现: // 在pos位置前插入值为val的节点 iterator insert(iterator pos, const T& val) { Node* newNode = new Node(val); // 创建新节点 Node* cur = pos._node;

文章图片
#c++#list#开发语言 +2
【C++ 进阶】list 核心机制解析及 vector 巅峰对决

这篇文章介绍了C++ STL中的list(双向循环链表)容器,主要内容包括: list的本质与结构:带头双向循环链表,包含哨兵节点实现简化操作,支持双向遍历; 核心特性对比vector: 优点:任意位置O(1)插入删除、按需分配内存、迭代器稳定性高; 缺点:不支持随机访问、缓存命中率低、额外指针存储开销; 常用构造方式:无参构造、填充构造、拷贝构造及迭代器区间构造; 迭代器使用:演示正向/反向遍历

文章图片
#c++#list#开发语言 +2
    共 18 条
  • 1
  • 2
  • 请选择