策略 梯度 确定性 算法

贪心算法初步

贪心算法的核心思想是通过局部最优解得到或近似取得全局最优解, 此时有几个待解决的问题:1. 怎么判断题目是否应用贪心策略求解?2. 怎么寻求局部最优与全局最优的关系?3. 如何选择最优的贪心标准以得到全局最优/较优解? <!--more-->## 思想理解可以参阅知乎答主"冒泡"的一篇回答 [如何理 ......
算法

esXGray开发笔记:基于直线检测的文本倾斜自动校正算法实现(python+opencv)

昨日采用最小面积矩形的方式实现文本倾斜自动校正,但后面的角度有点麻烦,于是改用基本直线检测的算法。 算法简介: 检测直线,自动调节参数,至少获取11条直线(直线条数调节) 计算每条直线与x轴夹角 从返回的角度中找到出现次数较多的直线角度平均值并返回作为图片倾斜角度 检测到角度后,就可以将图片进行校正 ......
算法 直线 文本 esXGray 笔记

搜索引擎优化:从技巧到策略的完整指南

导言: 在当今数字化时代,搜索引擎已成为人们获取信息和产品的主要途径。为了在竞争激烈的网络世界中脱颖而出,搜索引擎优化(SEO)变得至关重要。本文将为您提供一个从技巧到策略的完整SEO指南,帮助您在搜索结果中获得更高的排名和更多的流量。 一、关键词研究和优化 目标定位: 确定您的目标受众,并研究他们 ......
策略 搜索引擎 引擎 技巧 指南

LeetCode -- 833. 字符串中的查找与替换 (延迟改变策略)

所谓延迟改变,可以是在应该改变的地方打一个标记,等把所有应该改变的地方都找到后,再进行操作。 class Solution { public: string findReplaceString(string s, vector<int>& indices, vector<string>& sourc ......
字符串 字符 LeetCode 策略 833

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

设计模式--策略模式

简介 策略模式是一种行为设计模式,它将一组行为转换为对象,并使其在原始上下文对象内部能够相互替换 原始对象被称为上下文,它包含指向策略对象的引用并将执行行为的任务分派给策略对象 组成 策略接口(Strategy):所有具体策略的通用接口,它声明了一个上下文用于执行策略的方法 具体策略(Concret ......
模式 设计模式 策略

关于Vue的就地更新策略的解析

![在这里插入图片描述](https://img-blog.csdnimg.cn/e5068b47250e4fd9aac66f248d4d17ae.jpeg) 在Vue中使用v-for渲染列表时,默认使用就地更新策略。该策略默认是基于索引的,规定在列表绑定的数据元素顺序变化时,不会重新创建整个列表, ......
策略 Vue

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

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

如何用Spring 原生注解 快速实现策略模式+工厂模式

前言 这阵子在做项目组重构的工作,工作中的一部分就是就目前代码库中与企业交互的逻辑抽离出来,单独做一个微服务,实现企业交互逻辑的关注点分离。 在这里面我很自然而然的就用到了策略模式 + 工厂模式的方式,包装内部实现细节,向外提供统一的调用方式,有效的减少if/else的业务代码,使得代码更容易维护, ......
模式 注解 工厂 策略 Spring

有向图的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

《深入理解Java虚拟机》读书笔记:内存分配策略

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事儿。对象的内存分配,往大方向讲,就是在堆上分配,对象... ......
内存 策略 笔记 Java

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) 讲述了什么是递归算法,如何编写递归算法及如何写好递归算法,本文着重讲述一下如何避免递归过深导致的堆栈溢出问题。 ## 探究产生堆栈溢出的原因 函数调用采用**函数调用栈**来保存当前“快照”(局部 ......
数据结构 算法 结构 数据