代码编织梦想

【洛谷 p2240】【深基12.例1】部分背包问题 题解(贪心算法)-爱代码爱编程

【深基12.例1】部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有 N (

数据结构:字符串-爱代码爱编程

1.字符串 字符串∶简称为串,是由零个或多个字符组成的有限序列。一般记为。 字符串的长度︰字符串中字符的数目n称为字符串的长度。 空串:零个字符构成的串也称为「空字符串」,它的长度为0,可以表示为" "。 子串∶字符串中任意个连续的字符组成的子序列称为该字符串的「子串」。并且有两种特殊子串,起始于位置为0、长度为k的子串称为「前缀」。而终止于位

代码随想录--哈希表--四数相加ii题型、赎金信题型-爱代码爱编程

四数相加II题型 http://学透哈希表,map使用有技巧!LeetCode:454.四数相加II ①为什么想到用哈希表?为什么是用map? 因为我们是用c+d去寻找有没有哪个a+b与之相加等于0,所以是寻找某值是否出现过,所以用哈希表。 因为是统计有多少个相加等于0的,所以需要统计a+b的次数,比如c+d=2,那需要a+b=-2,可能a+b=-2有

回溯 算法-爱代码爱编程

模版 // 主函数 main( {     // 1: 定义返回的结果集合res     // 2: 定义回溯所需的组合combination,索引index     // 3: 调用回溯函数     backtrack(XXXX);     // 4: 结束 return } // 回溯函数 void backtrack(res, comb

数据结构与算法-查找-爱代码爱编程

一、基本概念 1.查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找 2.查找表:用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成 3.关键字:数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的 二、常见操作 1.查找符合条件的数据元素(静态查找表) 2.插入、删除某个数据元素(动态查

【数据结构与算法】快速排序的优化-爱代码爱编程

中心比较值优化、小规模直接插入排序优化、并行优化 前言 快速排序是一种比较优秀的排序算法,然而从快排的原理下手,我们能够对快速排序进一步优化。可以从中心值的选取、小规模直接插入排序、并行优化处理。 中心值优化:通过在样本(前中后)中选取中间值,来尽可能地选择离中位数最近的基准值。 小规模排序:待排序序列较小时,可以通过转变为例如直接插入

树,二叉树-爱代码爱编程

定义: 树是n个节点的有限集合, 当n=0时为空树 ,有且仅有一个称之为根的节点 ,令一颗树为T,除根节点外,可分为 m个互不相交的有限集 ,其中一个集合又是一棵树 称其为T的子树 树的基本术语: 二叉树的定义 : 二叉树的性质 : 二叉树定理 : 完全二叉树 :     n个节点的二叉链表中,空指

【伸展树】-爱代码爱编程

伸展树 概念 英文名: SplayTree,首先属于二叉搜索树, 一种自调节树。适用于二八法则场景。 伸展 :将一个元素移动至根部,称为一次伸展。 注意:伸展树不一定是二叉平衡树。 操作 插入 如果结点不存在则插入新

经典排序算法-爱代码爱编程

文章目录 序言算法分类算法复杂度 1、交换排序1.1 冒泡排序(Bubble Sort)1.2 快速排序(Quick Sort) 2、选择排序2.1 直接选择排序 3、插入排序3.1 直接插入排序3.2

【c#数据结构与算法 marcin jamro】第二章 arrays and lists-爱代码爱编程

数组:单维数组、多维数组、锯齿数组 排序算法: 选择排序、插入排序、冒泡排序、、快速排序 简单lists: 数组列表、通用列表、示例-平均值、示例-people列表 Sorted lists: 示例-address  book Linked list: 示例-book reader Circular-linked lists: 实现、示例-spi

【数据结构篇c++实现】- 线性表 - 链表-爱代码爱编程

文章目录 一、链表的原理精讲二、链表的算法实现🚀单链表(一)单链表的结构体定义(二)单链表的初始化(三)单链表增加元素1.前插法2.尾插法3.指定位置插入 (四)单链表删除元素(五)单链表查找、获取元素(六)

js 之 常见线性结构 - 队列结构-爱代码爱编程

一、队列及其特性 1. 概念 2. 常见操作 enqueue(element) :向队列尾部添加一个(或多个)新的项 dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素 front/peek():返回队列中第一个元素——最先

c语言数据结构初阶(7)----队列-爱代码爱编程

· CSDN的uu们,大家好。这里是C语言数据结构的第七讲。 · 目标:前路坎坷,披荆斩棘,扶摇直上。 · 博客主页: @姬如祎 队列的基础知识 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In Fi

【数据结构与算法之面试题】线性结构类面试题-爱代码爱编程

【数据结构与算法之面试题】线性结构类面试题 文章目录 【数据结构与算法之面试题】线性结构类面试题1 约瑟夫环2 单链表的逆置3 判断链表中是否存在循环结构4 判断两个链表是否相交5 判断回文链表6 最小栈问题7 每

【数据结构与算法】- 算法时间复杂度详解-爱代码爱编程

目录 一、概述 二、算法时间复杂度  2.1 基础操作的执行次数  2.2 算法时间复杂度  2.3 常用的时间复杂度  2.4 小结 三、几个例子熟悉时间复杂度推导  3.1 推导冒泡排序的时间复杂度

数据结构知识体系-爱代码爱编程

数据结构是计算机科学中的一门重要课程,它是研究数据组织、存储、管理和操作的一种方式,也是算法设计和优化的基础。本文旨在进行分类,由浅入深逐渐介绍数据结构和查找表结构,读者可参阅其他文章进行详细学习。同时,我的分类方式也有可能欠妥,欢迎批评指正! 〇. 数据结构知识体系及其分类 1.基本数据结构 数组(Array):一种线性数据结构,由相同类型的元素

算法练习-二叉树(一)-爱代码爱编程

算法练习-二叉树 文章目录 算法练习-二叉树1 二叉树的基础知识1.1 二叉树的存储1.1.1 基于指针的存储方式1.1.2基于数组的存储方式 1.2 二叉树的遍历1.2.1 前序遍历1.2.2 中序遍历1

还不会拓扑排序?看这一篇就够了-爱代码爱编程

目录 一、什么是拓扑排序?二、拓扑排序的实现2.1 拓扑排序模版 三、拓扑排序的应用3.1 有向图的拓扑序列3.2 家谱树3.3 奖金3.4 可达性统计3.5 Directing Edges 一、什么是

【编程竞赛】csdn竞赛38期3月19日考试-爱代码爱编程

1、题目名称:代写匿名信 小Q想要匿名举报XX领导不务正业! 小Q害怕别人认出他的字迹。 他选择从报纸上剪裁下来英文字母组成自己的举报信。 现在小Q找来了报纸,和自己的举报信的Txt, 你能帮他确定一下是否能够完成匿名信吗? 2、题目名称:寻因找祖 寻找因子个数为n的最小整数x. #include <iostream>

算法的时间复杂度与空间复杂度介绍-爱代码爱编程

本文主要介绍算法的时间复杂度和空间复杂度的相关知识。 1 概述 算法(Algorithm)是指用来操作数据、解决程序问题的方法。 对于同一个问题,使用不同的算法,也许最终得到的结果是相同的,但在执行该算法所需的时间和(存储)资源可能会有很大的区别,那么我们应该如何去衡量不同算法之间的优劣呢?目前主要是从算法所占用的“时间”和“空间”两个维度去进行