算法 理论gjk

代码随想录算法训练营第五天 | 复习和总结

一、LeetCode 142.环形链表II 自己再根据思路把代码独立写了一遍,并对照参考代码查漏补缺,进一步优化 二、206.反转链表 掌握2种递归写法,并用代码实现 从后向前遍历的递归,有点绕,多花了点时间理解 三、LeetCode 24. 两两交换链表中的节点 掌握递归写法,并用代码实现 再先理 ......
随想录 训练营 随想 算法 代码

文心一言 VS 讯飞星火 VS chatgpt (158)-- 算法导论12.3 5题

五、用go语言,假设为每个结点换一种设计,属性 x.p 指向 x 的双亲,属性 x.succ 指向 x 的后继。试给出使用这种表示法的二叉搜索树 T 上 SEARCH、INSERT 和DELETE 操作的伪代码。这些伪代码应在 O(h) 时间内执行完,其中 h 为树 T 的高度。(提示:应该设计一个 ......
文心 导论 算法 chatgpt VS

人工智能-A*算法-最优路径搜索实验

上次学会了《A*算法-八数码问题》,初步了解了A*算法的原理,本次再用A*算法完成一个最优路径搜索实验。 一、实验内容1. 设计自己的启发式函数。2. 在网格地图中,设计部分障碍物。3. 实现A*算法,搜索一条最优路径。 二、A*算法实现步骤 1. 初始化:设置起始节点和目标节点,并创建一个open ......
人工智能 算法 路径 人工 智能

SM2,SM3,SM4密码算法的调用

1. SM2密码算法 1.1 简介 SM2密码算法是一种非对称加密算法,基于椭圆曲线密码学。它不仅适用于数据加密,还广泛用于数字签名、密钥协商等场景,成为中国密码体系的中流砥柱。 1.2 原理 SM2算法的核心是椭圆曲线离散对数问题。通过选择适当的曲线参数和密钥长度,SM2保障了算法的安全性。其采用 ......
算法 SM 密码 SM2 SM3

亚当斯(Adams)预测-修正算法

亚当斯(Adams)预测-修正算法 由亚当斯-巴什福特(Adams-Bashforth)显式预测公式和亚当斯-莫顿(Adams-Moulton)隐式修正公式组成的预测-修正(PECE)对。 function [ YMat ] = Adams( func, tvec, y_init, order ) ......
算法 Adams

代码随想录算法训练营第天|LeetCode203.移除链表元素707.设计链表206.反转链表

LeetCode203.移除链表元素 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 203. 移除链表元素 - 力扣(LeetCode) ● 自己看到题目的第一想法 之前做这道题时想的不是很清楚,浅看了一下代码随想录的思路,又重新写了一边。删除链表 ......
随想录 训练营 随想 算法 LeetCode

随机选择算法

在一个无序数组中求第k大或者第k小的问题,要求时间复杂度是O(N),那么对于这两个问题只要解决一个另一个就解决了。因为求第一大可以转换成求第n小。 那么对于一个有100个元素的数组来说,我们要求第57小的数,那么它就是在求这个数组排好序之后下标在56的值,因为如果数组的元素没有重复的话,那么在下标0 ......
算法

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II

一、24. 两两交换链表中的节点 题目链接: LeetCode 24. 两两交换链表中的节点 学习前: 思路: 未新增虚拟结点。节点数为0,1,2需要另外讨论。当节点数>=2时,返回的head值为第2个节点,需要3个指针first、second、prev,分别是第一个节点和第二个节点,以及第一个节点 ......
节点 随想录 环形 训练营 随想

数据结构与算法 第一章(48课时课程笔记)Data Structure and Algorithms

感觉这一章的笔记不会有什么用处。课堂上有提问过抽象数据类型的定义,作业也让定义了几个(数据对象+数据关系+基本操作),数据逻辑结构(线性&非线性)与存储结构(顺序&链式),时间复杂度与空间复杂度 ......

Q-learning与Sarsa算法辨析

这个是Q-learing的一个算法,根据代码,它就是,先设定训练100次,然后,给它一个随机的状态,这里我们假设状态6就是终点,那么走迷宫的时候,如果没走到6,就要一直走下去,,所以里面还要用到一个while循环,然后在每个状态的时候,找一个非负的动作,存储在数组里,(算是合理动作的集合吧),下一个 ......
算法 Q-learning learning Sarsa

机器学习中的算法——K最邻近算法(KNN)

1.KNN算法的定位 KNN算法属于分类算法,所以它是有监督学习里面的一部分,且属于有监督学习里的分类问题 KNN的计算量很大 KNN理论上比较成熟且算法简单易懂,易实现 2.KNN算法的核心 简单地说 “近朱者赤,近墨者黑” 进行分类的时候,即将被分类的这个样本的附近(特征空间中最邻近)离它最近的 ......
算法 机器 KNN

算法学习Day4两两交换,链表相交,环形链表

Day4两两交换,链表相交,环形链表 By HQWQF 2023/12/16 笔记 24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 解法:迭代法 迭代法使用了虚拟头节点的技巧, 迭代法 ......
环形 算法 Day4 Day

kylin&CDH理论基础

Kylin&CDH理论基础 一、维度与度量 维度是观察数据的角度。比如电商的销售数据,可以从时间维度来观察,进一步细化时间和地区维度来观察。 度量是被聚合的统计值,也是聚合运算的结果。知道维度和度量,可以对数据模型上的所有字段进行分类,要么维度,要么度量,由此就出现了根据维度、度量做预计算的Cube ......
理论 基础 kylin amp CDH

Kafka日志压实算法

概念介绍 我们有时候可以把Kafka当作key、value数据库用(当然kafka中的消息可以不指定key)。 __consumer_offsets 这个topic的数据,就是典型的key、value数据。 /usr/local/kafka2.8/bin/kafka-run-class.sh kaf ......
算法 Kafka 日志

聊聊GLM基座模型的理论知识

概述 大模型有两个流程:预训练和推理。 预训练是在某种神经网络模型架构上,导入大规模语料数据,通过一系列的神经网络隐藏层的矩阵计算、微分计算等,输出权重,学习率,模型参数等超参数信息。 推理是在预训练的成果上,应用超参数文件,基于预训练结果,根据用户的输入信息,推理预测其行为。 GLM模型原理的理解 ......
基座 模型 理论 知识 GLM

KMP算法和Manacher算法

KMP算法 KMP算法解决的问题 KMP算法用来解决字符串匹配问题: 找到长串中短串出现的位置. KMP算法思路 暴力比较与KMP的区别 暴力匹配: 对长串的每个位,都从头开始匹配短串的所有位. KMP算法: 将短字符串前后相同的部分存储在\(next\)数组里,让之前匹配过的信息指导之后的匹配. ......
算法 Manacher KMP

[转]一文搞懂对称加密:加密算法、工作模式、填充方式、代码实现

原文地址:一文搞懂对称加密:加密算法、工作模式、填充方式、代码实现 - 知乎 单向散列加密只能够对消息进行加密(严格来说是计算消息的摘要),想要实现对密文解密,需要使用其它加密方式了。今天介绍一个在信息安全领域中,比较重要的加密方式——对称加密。 下面是本篇讲述内容: 加密、解密和密钥 加密(Enc ......
算法 模式 代码 方式

[转]Java中对称加密算法使用

原文地址:对称加密算法 - 廖雪峰的官方网站 对称加密算法就是传统的用一个密码进行加密和解密。例如,我们常用的WinZIP和WinRAR对压缩包的加密和解密,就是使用对称加密算法: 从程序的角度看,所谓加密,就是这样一个函数,它接收密码和明文,然后输出密文: secret = encrypt(key ......
算法 Java

算法学习笔记四一插入排序

目录什么是插入排序算法原理示例代码 什么是插入排序 插入排序可理解为扑克牌摸牌的过程,手中的牌为有序序列,然后随机摸一张牌,根据牌的大小插入到有序序列对应的位置。算法时间复杂度为O(n^2) 算法原理 默认列表第一个元素为基准,从第二个元素和第一个元素进行比较,并放入到相应位置。 此时前两个元素是一 ......
算法 笔记

代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表

LeetCode 203.移除链表元素 题目链接:203.移除链表元素 原链表删除元素(需要区分头节点和非头结点) 使用虚拟头节点,统一链表操作(注意:新链表头结点是虚拟头节点的下一节点) LetCode 707.设计链表 题目链接:707.设计链表 注意:头节点采用虚拟头节点,使得链表操作具有一致 ......
随想录 训练营 随想 算法 元素

算法学习Day3虚拟头指针,设计链表,反转链表

Day3虚拟头指针,设计链表,反转链表 By HQWQF 2023/12/15 笔记 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 解法:虚拟头指针 看起来非常简单,但是由于如果直接 ......
指针 算法 Day3 Day

算法学习笔记三一选择排序

目录什么是选择排序算法原理示例代码 什么是选择排序 选择排序的主要思想是(升序为例):第一次从待排序的数据元素中选出最小的一个元素,和数组的起始位置元素进行交换,然后再从剩余的未排序元素中寻找到最小元素,然后和未排序的序列的第一个元素进行交换。每次在未排序序列中选择一个最小元素这样已排序序列就是一个 ......
算法 笔记

双指针算法概念

"双指针"是一种在数组或链表中使用两个指针来进行操作的技术。这两个指针通常被称为“快”指针和“慢”指针,或者“左”指针和“右”指针,根据其在数据结构中的移动速度或位置来命名。双指针算法在处理数组或链表的问题中非常有效,可以帮助我们以更优的时间复杂度解决问题。常见的应用包括两数之和、判断链表是否存在环 ......
指针 算法 概念

代码随想录算法训练营第三天 | 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表

一、链表理论基础 学习: 1. 链表定义 线性表的一种存储方式,在逻辑上连续的数据在物理存储中可以不连续。 class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; this ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营Day3 | 203.移除链表元素、707.设计链表、206.翻转链表

这三道题都不涉及什么难以理解的算法,是对链表基础知识的一个复习巩固 对于有数据结构基础的同学来说这个没有什么难度 但是,写代码的过程中,我明显感觉到,我需要更加完善和统一的代码风格,作为一个前OIer,我的c和cpp混用的情况在基础数据结构的封装层面造成了不小的混乱! 我需要去补充cpp的内容的,或 ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营Day2 |977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵 II

明天四级考试了,时间非常紧张,好在这些数组相关的算法题很久之前就做过,思路上是不存在不理解的地方的。 有序数组的平方是一道非常直观的双指针方法的应用,实现过程之中没有什么坑。 长度最小的子数组就是我们的滑动窗口方法了,题目不难,但是这种处理方式有着很深刻的背景,之后还会遇到此问题的变种。 螺旋矩阵问 ......
数组 随想录 训练营 矩阵 螺旋

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

四、用go语言,删除操作可交换吗?可交换的含义是,先删除 x 再删除 y 留下的结果树与先除 y 再删除 x 留下的结果树完全一样。如果是,说明为什么? 否则,给出一个反例。 文心一言: 在Go语言中,删除操作是不可交换的。这意味着先删除节点 x 再删除节点 y 与先删除节点 y 再删除节点 x 留 ......
文心 导论 算法 chatgpt VS

【kmp算法】字符串匹配

一,解决问题 kmp算法解决的是字符串匹配的问题,具体来说假定我们要在主串s[ ] 中匹配模式串p[ ],找到匹配到的位置loc; 二,具体实现和演变过程 最自然的想法是暴力写法 (BF)枚举主串字符s[ i ] ,和模式串p[ j ]。一个一个匹配,如果匹配失败,i指针回退回起点,往前进一位,再次 ......
字符串 算法 字符 kmp

机器学习的里程碑:从基础理论到大语言模型的进步

在人工智能的迅猛发展中,大语言模型和传统机器学习是不同发展阶段下的产物。大语言模型,如广为人知的GPT系列和BERT,主要依赖于复杂的神经网络结构,它们能够处理和生成人类语言,为自然语言处理带来了革命性的变化。这些模型的发展标志着从简单的任务特定模型向更通用、更灵活的解决方案的转变。相比之下,传统机 ......
基础理论 里程碑 模型 机器 理论

基于Raft算法的DLedger-Library分析

在分布式系统应用中,高可用、一致性是经常面临的问题,针对不同的应用场景,我们会选择不同的架构方式,比如master-slave、基于ZooKeeper选主。随着时间的推移,出现了基于Raft算法自动选主的方式,Raft是在Paxos的基础上,做了一些简化和限制,比如增加了日志必须是连续的,只支持领导... ......
DLedger-Library 算法 DLedger Library Raft