错题 算法

day34 贪心算法part3

[1005.K次取反后最大化的数组和](https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/) ![](https://img2023.cnblogs.com/blog/1076992/20 ......
算法 part3 part day 34

栈(Stack)的基本原理及算法实现

# 栈(Stack)的基本原理及算法实现 ## 一、栈的基本概念 栈(Stack)是一种后进先出(LIFO,Last In First Out)的线性表,其特点是只允许在一端进行插入操作,而在另一端进行删除操作。栈的基本操作有:入栈(push)、出栈(pop)、查看栈顶元素(top)等。 ## 二、 ......
算法 原理 Stack

有向图的Tarjian算法

## 强连通分量 对于一张有向图,对于图中任意两个节点$x,y$,$x$能到$y$,$y$也能到$x$,则称其为强连通图。有向图的极大联通子图被称为强连通分量,简记为SCC(Strongly Connected Component)。 有时候,我们需要将一张有向图分成几个强连通分量,这时候可以基于T ......
有向图 算法 Tarjian

[信息安全] 加密算法:md5摘要算法 / sha256算法

# 1 MD5 ## 1.1 算法定义 + MD5的全称为 **Message-Digest Algorithm**,是一种被广泛使用的**单向**散列函数、属于Hash算法中一种比较重要算法——具有**单项加密**、**加密结果唯一**、**安全性能好**等优点。 + MD5算法可以产生出一个** ......
算法 摘要 信息 md5 256

2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2 每一次转化时,你可以将

2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2, 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2, 每一次转化时,你可以将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母, 只有在字符串 str1 能够通 ......
字符串 字符 str str1 str2

敏感词过滤算法实现(前缀树)

## 前缀树 **前缀树**是N叉树的一种特殊形式,也叫Trie、字典树、查找树。通常来说,一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个 字符串 ( 前缀 )。每一个节点会有多个子节点,通往不同子节点的路径上有着不同的字符。子节点代表的字符串是由节点本身的**原始字符串**,以及 通往该 ......
前缀 算法

类欧几里得算法

## 类欧几里得算法 定义 $$\displaystyle\begin{aligned} f(a,b,c,n) &= \sum\limits_{i = 0}^{n}\left\lfloor\dfrac{ai + b}{c}\right\rfloor \\ g(a,b,c,n) &= \sum\lim ......
算法

【二分图】 二分图上匹配问题 和 匈牙利算法正确性说明

# 【二分图】 二分图上匹配问题 和 匈牙利算法正确性说明 - 本文讨论无权图 - 思维上没什么难度,但是文字量却比自己想的要多…… ## 0. 一些前置 - 什么是二分图上的匹配?什么是匈牙利算法? [“二分图最大匹配概念、匈牙利算法”](https://zhuanlan.zhihu.com/p/ ......
正确性 算法 问题

编程题算法总结

# 求最大公约数 最小公倍数 ## 最大公约数 ### 辗转相除法 > 大的a除小的b,得到余数如果是0,那么b就是最大公约数,否则就取余数做那个小的,本来的b就成了大的继续操作。 ``` int n,m; //辗转相除法,ab最大公约数 = ab余数和b的最大公约数 int yu,a,b; a = ......
算法

位运算 学习笔记【C++ 算法竞赛】

> 大家好,欢迎来到我的第一篇博客 > > 位运算和移位运算作为计算机的基本运算之⼀,其都是对⼆进制位进⾏操作。作为近年算法竞赛笔试较热门的考点,它能够快捷地完成特定的应用。掌握它是⾮常有必要的。 以下是目录: [TOC] ## 1. 位运算的优先级 C++运算符的具体优先级详见[大佬的文章](ht ......
算法 笔记

数据结构与算法 --- 如何分析排序算法

## 引言 排序算法是最基础的算法,对于排序算法,除学习算法原理,代码实现之外,更重要的是学习每个算法的特点,知道在什么场景下选择那种算法。 那一定是选择时间复杂度最低的排序算法就是最优的吗? 可以从以下几个方面分析一下。 ## 排序算法的执行效率 对于排序算法的执行效率,一般从以下几个方面来分析: ......
算法 数据结构 结构 数据

Chameleon算法的C语言实现及代码解析

Chameleon算法的C语言实现及代码解析 在计算机科学领域中,算法的设计和实现是非常重要的。而在大量的算法中,Chameleon算法以其独特的特点和应用广泛受到了研究者们的关注。本文将围绕Chameleon算法的C语言实现及其代码解析展开,通过具体的示例来解释其原理和应用。 Chameleon算 ......
算法 Chameleon 语言 代码

C语言求凸包的算法及实现

C语言求凸包的算法及实现 凸包问题是计算几何中的一个重要问题,它描述了一个点集中最小的凸多边形。在本文中,我们将探讨使用C语言来解决凸包问题的算法及其实现。 C语言 求凸包的算法及实现 凸包算法的关键在于如何确定一个点是否在凸包上。对于一个给定的点集,我们可以选择一点作为起始点,并按照一定的顺序将其 ......
凸包 算法 语言

推荐搜索算法论文速读1

# n-gram 模型 参考:https://zhuanlan.zhihu.com/p/32829048 简介:一个句子或者一个联想词语,可以使用链式规则建模,利用马尔科夫链的假设(当前词语的产生只与前n个词语产生的概率相关)。n-gram中的n指的就是马尔科夫链假设中的长度。 定义:一元模型uni ......
算法 论文

线性规划之单纯形算法

学了很长时间,一直不是很能理解,所以就准备写一篇。 **这篇文章只讲单纯形算法**。 假设我们已经得到了标准型: $$\begin{aligned} \max:\sum\limits_{i=1}^na_ix_i\\ \sum\limits_{i=1}^nb_{j,i}x_i=c_j&,j=1,2\d ......
线性 算法

【web_逆向04】MD5摘要算法

## MD5是一个非常常见的摘要(hash)算法,其特点就是小巧. 速度快. 极难被破解。所以, md5依然是国内非常多的互联网公司选择的密码摘要算法 - 1. 这玩意不可逆. 所以. 摘要算法就不是一个加密逻辑. - 2. 相同的内容计算出来的摘要应该是一样的 - 3. 不同的内容(哪怕是一丢丢丢 ......
算法 摘要 web MD5 MD

k\log_k N 极小值|k 分算法是 k 越大越好吗?

# 引入 我们有二分算法,就是: > **定义** > > 二分查找(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是用来在一个有序数组中查找某一元素的算法。 > > **过程** > > ......
算法 log_k log

数据结构与算法 --- 排序算法(一)

## 引言 按照时间复杂度,将一些常见排序算法进行分类,分为以下三类: - $O(n^2)$:冒泡排序,插入排序,选择排序。 - $O(nlogn)$:快速排序,归并排序。 - $O(n)$:桶排序,计数排序,基数排序。 本篇文章讨论以下第一类:冒泡排序,插入排序,选择排序。 上一篇[数据结构与算法 ......
算法 数据结构 结构 数据

数据结构与算法 --- 排序算法(二)

title: 数据结构与算法 排序算法(二) category: 数据结构与算法 tags: 算法 updatedAt: 2023-05-18T15:29:17.847Z createdAt: 2023-05-13T14:43:31.656Z ## 引言 上一篇[数据结构与算法 排序算法(一)](h ......
算法 数据结构 结构 数据

数据结构与算法 --- “哨兵”思想

## 引言 哨兵思想是指在算法中使用一个特殊值来检测或标记某些条件的发生,它的目的是为了简化代码,并使其更容易理解,常常用于在循环中优化边界条件的判断。 ## 介绍 在算法中,"哨兵"思想是指在循环中设置一个特殊的元素(称为哨兵),以便在循环过程中能够更高效地处理某些边界情况或结束条件。 这种思想可 ......
哨兵 数据结构 算法 思想 结构

数据结构与算法 --- 递归(一)

## 什么是递归? **递归(Recursion)** 是一种解决问题的方法,它将问题分解为更小的子问题,并逐层解决这些子问题。递归算法的核心思想是:**一个函数可以直接或间接地调用自身**。通过这种自我调用,我们可以用简洁的代码来解决复杂问题。 ## 满足递归的条件 一般来说,满足下面三个条件就可 ......
数据结构 算法 结构 数据

数据结构与算法 --- 递归(二)

## 引言 上文[数据结构与算法 递归(一)](https://niuery.com/post/51) 讲述了什么是递归算法,如何编写递归算法及如何写好递归算法,本文着重讲述一下如何避免递归过深导致的堆栈溢出问题。 ## 探究产生堆栈溢出的原因 函数调用采用**函数调用栈**来保存当前“快照”(局部 ......
数据结构 算法 结构 数据

数据结构与算法 --- 组数、链表、栈和队列(一)

数组、链表、栈和队列是四种基础数据结构,他们是高级、复杂的数据结构和算法的基础。本篇先来讲述**数组,链表,及算法的优化策略**。 ### 数组 #### 定义 **数组:数组是一种线性表数据结构,它用一组连续的内存空间存储一组具有相同类型的数据。** 定义中有三个关键词: - **线性表** - ......
数据结构 队列 算法 结构 数据

数据结构与算法 --- 组数、链表、栈和队列(二)

继[数据结构与算法 组数、链表、栈和队列(一)](https://niuery.com/post/41)讲解完数组,链表及算法的优化策略之后,接下来继续讲解**两种特殊的线性表结构,栈和队列**。 ## 栈 对“栈”有一个很形象的比喻,栈就像一摞叠在一起的盘子,放盘子时,只能放在上面,不能将盘子插入 ......
数据结构 队列 算法 结构 数据

数据结构与算法 --- 算法绪论

# 开场白 算法介绍从一个简单加法开始,现要求写一个求1+2+3+..+100的结果的程序,那我可以这样写: ```csharp int count = 100; int sum = 0; for (int i =1; i 这就是最简单的程序之一,这就是算法。但是它是最优的吗?是最高效的吗? 儿时数 ......
算法 数据结构 绪论 结构 数据

数据结构与算法 --- 复杂度分析专题(一)

## 意义 算法复杂度分析的意义在于评估算法的执行效率,找出最优解决方案,是优化算法和改进程序性能的基础。通过对算法的时间复杂度和空间复杂度进行分析,可以帮助我们预估该算法运行所需的资源,从而提高程序的性能。 ## 大O复杂度表示法 ### 例1 有如下代码 ```csharp 1 public i ......
复杂度 数据结构 算法 结构 专题

数据结构与算法 --- 复杂度分析专题(二)

title: 数据结构与算法 复杂度分析专题(二) category: 数据结构与算法 tags: 算法 updatedAt: 2023-05-13T12:54:18.943Z createdAt: 2023-04-09T13:52:05.115Z ## 引言 在上一篇[复杂度分析专题(一)](ht ......
复杂度 数据结构 算法 结构 专题

C语言中的排序算法及其实现方法

C语言中的排序算法及其实现方法 排序算法是计算机科学中的重要部分,它们在数据处理和算法设计中起着关键作用。在C语言编程开发中,掌握不同的排序算法及其实现方法对于提高代码质量和性能至关重要。本文将围绕C语言中的排序算法展开讨论,介绍几种常见的排序算法及其实现方法。 1C语言中的排序算法及其实现方法 首 ......
算法 语言 方法

机器学习实战5-KMeans聚类算法

# 概述 聚类 VS 分类 ![3.png](https://img1.imgtp.com/2023/08/12/TLpVN5O2.png) ![5.png](https://img1.imgtp.com/2023/08/12/HAO6YrvZ.png) 有监督学习 VS 无监督学习 ![4.png ......
算法 实战 机器 KMeans

分治算法——241. 为运算表达式设计优先级

分治思路:对于一个算式来说,总是可以根据运算符分为左右两部分算式,接着分别计算结果并合并;每一个结果都是一个数组,包含这个算式的所有可能结果,计算时将左右两部分排列组合;递归的终点是字符串是纯数字(即分到一个算式中只剩下一个数字),直接返回。 比如示例中的2*3-4*5,有下面的分法: 1、分为2与 ......
优先级 表达式 算法 241