算法 随想录 柠檬水 队列

[代码随想录]Day14-二叉树part03

## 题目:[104. 二叉树的最大深度](https://leetcode.cn/problems/maximum-depth-of-binary-tree/) ### 思路: 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 - 二叉树节点的深 ......
随想录 随想 代码 part Day

LeetCode从算法到算命—1281.整数的各位积和之差(20230809)

# 1281.整数的各位积和之差 ## 题目信息 给你一个整数 `n`,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 **示例 1:** ``` 输入:n = 234 输出:15 解释: 各位数之积 = 2 * 3 * 4 = 24 各位数之和 = 2 + 3 + 4 = 9 结 ......
整数 算法 LeetCode 20230809 1281

有效的括号--LeetCode算法

不用map的解法 public boolean isValid(String s) { //输入的字符串为空,直接返回true if(s.isEmpty()) return true; //新建一个栈 Stack<Character> stack=new Stack<Character>(); // ......
括号 算法 LeetCode

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

704 二分查找 题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 第一想法 判断条件是 value = target 因为数组是升序,其实每种查找方法应该相差不大? 不过 ......
随想录 训练营 随想 算法 元素

manacher(马拉车)算法C++详解

#马拉车的定义 马拉车本质是对**中心扩展法**(暴力算法)的优化。 #马拉车是干什么的 Manacher算法帮助我们**在给定的字符串中找到最长的回文子串**。 为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数个字符的字符串,在文章最后会给出解法。我们的处理思路和暴力算法基本一致,那就是从 ......
算法 manacher

单源次短路算法 学习笔记

**次短路**:顾名思义就是一张图中**第二短**的路径。 **分类**:1. 边**不可重复经过**的次短路问题。边**可重复经过**的次短路问题。 2. **严格**次短路(次短路长度**必须大于**最短路长度)。**非严格**次短路(次短路长度**可以大于或等于**最短路长度)。 # 一 、边 ......
算法 笔记

关于读者阅读“改良版雪花算法”后提出的几个共性问题的回复

你好呀,我是歪歪。 周一的时候不是发了《在开源项目中看到一个改良版的雪花算法,现在它是你的了。》这篇破文章嘛。 然后有好几个读者都提出了几个类似的问题,再写个续集,给大家解答一下。 我就喜欢这种和读者有来有回,相互拉扯的感觉。 突出一个“相互学习,共同进步。” 超前消费 首先大家都在纠结的一个点是, ......
共性 算法 雪花 读者 问题

C++系列二:STL教程-常用算法

 [TOC](常用算法) # 前言 还有一些我在尝试中迷惑不解的,有点玄幻。 # 算法列举: 1. 排序算法: ```cpp sort(first, last); stable_sort(first, last); partial_sort(first, middle, last); partia ......
算法 常用 教程 STL

智能投放算法笔记(S/X-Learner & Uplift tree)

[toc] ## 1 S/X-Learner ### 1.1 S/X-Learner算法概述 S/X-Learner是一种基于强化学习的算法,用于在线广告的智能自动投放。其包含两个组成部分: - S-Learner: 评估每个广告的预期点击率(CTR) - X-Learner: 评估每个广告的真实商 ......
算法 X-Learner Learner 智能 笔记

决策树算法

## 决策树算法核心是要解决两个的关键问题 1、如何从数据表中照出最佳节点和最佳分支 2、如何让决策树停止生长防止过拟合 > 就是说假如我有一张数据表,数据表中有成千上万个特征,我要把他们都提问完吗? ## sklearn中的决策树模型 ![6.png](https://img1.imgtp.com ......
算法

代码随想录算法训练营第十天|力扣232.用栈实现队列、力扣225.用队列实现栈

# 栈与队列 ## 理论知识 栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。 **栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔 ......
队列 随想录 训练营 随想 算法

代码随想录算法训练营第十四天| 理论基础 递归遍历 迭代遍历

理论基础 卡哥建议:需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 补充的知识点: ......
随想录 训练营 随想 算法 理论

单源最短路径算法

# 单源最短路径算法 ## 1. 原理 单源最短路径算法是一种用于在有向图或无向图中找到从指定源节点到其他所有节点的最短路径的算法。常用的单源最短路径算法有Dijkstra算法、Floyd-Warshall算法和Bellman-Ford算法。 ## 2. Dijkstra算法 Dijkstra算法是 ......
算法

(未完全掌握)代码随想录算法训练营第八、九天|KMP算法;力扣28.实现strStr(),力扣459.重复的子字符串

## KMP算法(没掌握) - 主要功能:字符串匹配 - 理论:检测文本串中是否出现过模式串 - 前缀就是包含首字母不包含尾字母的所有子串 - 后缀就是包含尾字母不包含首字母的所有子串 - 最长相等前后缀:对子串分别分析,从左向右 - **前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时 ......
算法 随想录 训练营 九天 字符串

Floyd 算法

# Floyd 算法:动态规划中的最短路径问题 ## 一、简介 Floyd 算法是一种用于求解图中所有顶点对之间最短路径的动态规划算法。它是由 Robert W. Floyd 在 1965 年提出的,因此得名 Floyd-Warshall 算法。该算法的核心思想是使用动态规划来避免重复计算已经计算过 ......
算法 Floyd

[代码随想录]Day13-二叉树part02

## 题目:[102. 二叉树的层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/) ### 思路: 先把根放进去,然后每次都是左右就可以了。 记录一个深度,当`len(res) == deepth`的时候就说明 ......
随想录 随想 代码 part Day

Feign和消息队列(MQ)的区别

Feign和消息队列(MQ)是两个不同的概念,它们分别用于不同的目的。下面我将分别介绍它们的作用和特点。 Feign是一个在微服务架构中用于实现服务间通信的轻量级、声明式的HTTP客户端。它由Netflix开源,并且与Spring Cloud集成得非常紧密。Feign可以让开发人员以类似于编写本地方 ......
队列 消息 Feign

MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩|附代码数据

全文链接:http://tecdat.cn/?p=30832 最近我们被客户要求撰写关于K-Means(K-均值)聚类算法的研究报告,包括一些图形和统计输出。 本文首先阐明了聚类算法的基本概念,介绍了几种比较典型的聚类算法,然后重点阐述了K-均值算法的基本思想,对K-均值算法的优缺点做了分析,回顾了 ......
均值 数据 数据挖掘 算法 成绩

LeetCode从算法到算命—1749.任意子数组和的绝对值的最大值

# 1749.任意子数组和的绝对值的最大值 ## 题目信息 给你一个整数数组 `nums` 。一个子数组 `[numsl, numsl+1, ..., numsr-1, numsr]` 的 **和的绝对值** 为 `abs(numsl + numsl+1 + ... + numsr-1 + nums ......
绝对值 最大值 数组 算法 LeetCode

单调队列

单调性的原理可以用一句没有啥道理的但又有点道理的话理解:如果一个人比你小还比你强,你就永远打不过他了。 最大子序和 ......
队列

复习消息队列之RabbitMQ

概念: RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。对比: Rabb ......
队列 RabbitMQ 消息

最短路算法大全(Bellman-Ford &Spfa)

# Bellman-Ford算法 1、基于松弛操作的***单源最短路算法***,针对于有向图、 2、e[u]存u点的出边的邻点和边权,d[u]存u点到原点的距离 3、初始化,d[s] = 0,d[其他点]=INF (源点到本身的距离初始化为0到其他点的距离都初始化为无穷) 4、执行多轮操作。每轮操作 ......
Bellman-Ford 算法 Bellman 大全 Ford

非对称加密算法

非对称加密算法是一种使用公钥和私钥配对的加密算法,也称为公钥加密算法.常见的非对称加密算法包括 RSA、DSA 等,它们遵循 公钥分发、私钥保密规则,也就是说公钥是公开的,可以自由分发给其他人.而私钥是保密的,只有私钥的持有者知道.这样可以确保加密和签名的安全性,因为即使公钥被泄露,也无法对数据进行 ......
算法

文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题

# 四、如何修改 QUICKSORT,使得它能够以非递增序进行排序? ## 文心一言: 快速排序(Quicksort)是一种常用的排序算法,基于分治策略进行设计。默认情况下,快速排序会以递增序进行排序。若想修改快速排序以实现非递增排序,我们需要调整比较和交换的逻辑。 以下是修改后的非递增快速排序的 ......
文心 导论 算法 chatgpt VS

堆优化模拟退火(List-Based Simulated Annealing|List-Based SA|LBSA|模拟退火) 算法

# 堆优化模拟退火(List-Based Simulated Annealing) 算法 ## 引入 堆优化模拟退火(List-Based Simulated Annealing,简称 LBSA) 是一种对 [模拟退火](https://oi-wiki.org/misc/simulated-anne ......
List-Based Based List 算法 Annealing

算法

原码、反码、补码 1.正数 原码 = 反码 = 补码 2.负数 反码 = 原码符号位,外按位取反 补码 = 反码 + 1 3. 计算机存储的是补码,解决了原码中 0 有 0000-0000 和 1000-0000 的问题 ......
算法

算法刷题过程中有关包装类和基本类型的注意事项

包装类型和基本数据类型 int <->Integer Integer a = Integer.valueOf(10); int b = a.intValue(); "123" -> 123 int val = Integer.parseInt("123"); Array转化为List List<In ......
算法 注意事项 事项 过程 类型

TimeId 基于时间戳的自增ID算法(Java版)

## 常用的全局唯一ID算法 ### 1、UUID 首先是大名鼎鼎的 UUID,UUID 是通用唯一识别码(Universally Unique Identifier)的缩写。 UUID是一个128比特的数值,是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算 ......
算法 时间 TimeId Java

重重重重重学 KM 算法

KM 算法用于求解二分图最大权完美匹配问题。 Q:如果没有完美匹配,只求最大权怎么办? A:把剩下的边设为 $0$。 利用线性规划的结论,二分图最大权完美匹配可以转化为最小顶标和问题。也即求出最小的 $\sum a_i+b_i$,使得 $a_i+b_j\geq g_{i,j}$。 结论:最小的 $a ......
算法 KM