算法leetcode day 30

【算法】链表

1 链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。 链表中的节点在内存中不是连续分布的 ,而是散乱分布在内存中的某地址 ......
算法

[代码随想录]Day52-单调栈part03

题目:84. 柱状图中最大的矩形 思路: 实现要确定一个核心问题:包含完整一个柱子的最大矩形要找到这根柱子左侧最后一个高于他的柱子以及右侧最后一个高于他的柱子的位置(等同于左侧第一个小于他,右侧第一个小于他,因为+1 -1就是) 只要get到一个点,比如:30 50 70 80 60 70 40 这 ......
随想录 随想 代码 part Day

代码随想录算法训练营day17 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 class Solution { public: int getHeight(TreeNode* node){ if(node == NULL) return 0; int leftHeight = getHeight(node->left); if(leftHeight == ......
随想录 之和 训练营 随想 算法

【算法】算法性能分析

1 时间复杂度 1.1 知识点 时间复杂度是一个函数,它定性描述该算法的运行时间。 通常会估算算法的操作单元数量来代表程序消耗的时间。假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时 ......
算法 性能分析 性能

随想录Day3|203. 移除链表元素、707. 设计链表、206. 反转链表

随想录Day3|203. 移除链表元素、707. 设计链表、206. 反转链表 之后的文章就不放题目链接了,因为真的很推荐Vscode的LeetCode插件,搜一下题号就可以开始code了! 我没怎么用过C++所以也是才开始熟悉它的特性,因为是链表的开始,所以搬运一下卡尔的这一小段代码。 // 单链 ......
随想录 随想 元素 Day3 Day

基于DCT变换和huffman编码的语音压缩算法matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.算法理论概述 语音是人类最重要、最有效、最常用和最方便的交换信息的形式,是人们思想疏通和情感交流的最主要途径。在实际的语音通信中,有些信道难以扩宽且质量很差;有些信道正被广泛使用,短期内难以更新;有些昂贵的信道,每压缩一个比特 ......
算法 语音 编码 huffman matlab

算法训练day17 LeetCode 110

算法训练day17 LeetCode 110.257.404 110平衡二叉树 题目 110. 平衡二叉树 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 当子树已经不平衡,直接返回-1.平衡则返回子数高度进行更高树间的高度比较 class Solution ......
算法 LeetCode day 110 17

拓展欧几里得算法揭秘

最大公约数 更相减损术:\(\gcd(x,y)=\gcd(y-x,x)(x\leq y)\)。 设 \(\gcd(x,y)=k,\gcd(p,q)=1,x=kp,y=kq\)。 那么 \(\gcd(y-x,x)=\gcd(kq-kp,kp)=k\times\gcd(q-p,p)\)。 设 \(\gc ......
算法

算法训练day16 LeetCod 104

算法训练day16 LeetCod 104.111.222 104.二叉树的最大深度 题目 104. 二叉树的最大深度 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 递归采用后序的遍历顺序,在根节点处做高度数据的处理 class Solution { pu ......
算法 LeetCod day 104 16

LeetCode3题学透链表初始化、查找、插入删除、逆置操作

1.题目要求 LeetCode203移除链表指定元素 LeetCode707设计链表 LeetCode206反转链表 这三个题目包含了链表的初始化、插入头尾结点、插入删除第n个结点,删除指定内容的结点、链表的逆置等,下面我将一一讲解并展示源代码。 2.具体操作 2.1LeetCode中链表的初始化 ......
LeetCode3 LeetCode

算法打卡|Day2 数组part02

Day1 数组part01 今日任务:数组理论基础,704. 二分查找,27. 移除元素 目录Day1 数组part01今日任务:数组理论基础,704. 二分查找,27. 移除元素Problem: 977. 有序数组的平方思路解题方法复杂度CodeProblem: 209. 长度最小的子数组思路解题 ......
数组 算法 Day2 part Day

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

四、用go语言,对一个包含n个元素的集合,假设一个算法只使用比较来确定第i小的元素,证明:无需额外的比较操作,它也能找到第 i-1 小的元素和第 n-i大的元素。 文心一言: 在这个问题中,我们要使用一个称为"QuickSelect"的算法,这是一个用于在未排序的列表中查找第k小元素的算法。该算法基 ......
文心 导论 算法 chatgpt VS

Aho-Corasick 算法 AC自动机实现

敏感词过滤在社区发帖、网站检索、短信发送等场景下是很常见的需求,尤其是在高并发场景下如何实现敏感词过滤,都对过滤算法提出了更高的性能要求,Ahocorasick算法能够实现毫秒级的万字过滤匹配,能够很好的满足各种场景下的敏感词过滤需求。 Aho-Corasick算法通过将模式串预处理为确定有限状态自 ......
自动机 Aho-Corasick 算法 Corasick Aho

Python——24days

序列化模块 pickle模块 hashilb模块(加密) ———————————————————————————————————————————————— 什么是序列化?什么是序列? 序列就是字符串 序列化是把其他数据类型转为json字符串的过程 什么是反序列化? 把json字符串转为其他数据类型的 ......
Python days 24

【Python】递归算法

定义 递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。 思想 函数调用函数本身,直到不能调用为止 注意事项 基本情况用于保证程序调用及时返回,不在继续递归,保证了程序可终止。 递推关系,可将所有其他情况拆分到基本案例。 ​递推关系​: 一个问题的结果与其子问题的结果之间的关系。 ......
算法 Python

[leetcode] 10. 正则表达式匹配

10. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s = "aa", p = "a ......
正则 表达式 leetcode 10

常用的校验算法

CRC校验码 public static string CRCCheck(string val) { val = val.TrimEnd(' '); string[] spva = val.Split(' '); byte[] bufData = new byte[spva.Length + 2]; ......
算法 常用

PostgreSQL技术大讲堂 - 第30讲:多表连接方式

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第30讲:多表连接方式 第30讲预告:9月23日(周六)19:30-20 ......
大讲堂 PostgreSQL 方式 技术

【算法题】将十二位之内的数字转为汉字输出

// 单位,末尾 个 省略 const charUnitArr = ['千', '百', '十', '亿', '千', '百', '十', '万', '千', '百', '十', '']; // 数字 0-9的 汉字写法 const chartNumberArr = ['零', '壹', '贰', ......
算法 数字

Day01 - Vue介绍

前端介绍 1 HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看 2 Ajax的出现 -> 后台发送异步请求, ......
Day Vue 01

Day03 - Vue语法使用

JS循环方式 JS循环方式 // 方式一: js循环 >for() >基于索引的循环 let i = 0 for (; i < 10;) { console.log(i) i++ } let list = [1, 2, 3, 4, 5, 6, 7, 8] for (let j = 0; j < li ......
语法 Day Vue 03

Day02 - Vue 基础知识

模版语法 <body> <div id="app1"> <h1>模版语法</h1> <p>渲染字符串, 姓名:{{ name }}</p> <p>渲染字符串, 年龄:{{ age }}</p> <p>渲染数组类型, >:{{ list1 }}</p> <p>渲染数组类型按照索引取值, >:{{ li ......
基础知识 基础 知识 Day Vue

Day06 - Vue项目的使用

解析Vue项目 // 1 为什么浏览器中访问某个地址,会显示某个页面组件 -根组件:App.Vue必须是: <template> <div id="app"> <router-view></router-view> </div> </template> -配置路由: // 先导入 import ya ......
项目 Day Vue 06

Day05 - Vue之动态组件、插槽、项目的创建

动态组件 // 关键字: component // 使用方法: <component :is="who"></component> // component标签的is属性等于组件名字,这里就会显示这个组件 <!DOCTYPE html> <html lang="en"> <head> <meta c ......
组件 项目 动态 Day Vue

Day04 - Vue的请求方式、计算属性、监听、ref

与后端交互的三种方式 // 后端接口写好了,前后端分离的项目,前端如何与后端进行交互? 前后端要打通 >从前端发送Ajax请求 >核心:使用JavaScript发送HTTP请求,接受返回的数据 -使用原生JS,可以开启Ajax,但是使用原生JS,比较麻烦,需要做浏览器兼容,现在基本不使用 -jQue ......
属性 方式 Day Vue ref

雅礼集训三十天,day5

总结 100 + 0 + 0 + 0 = 100分 考的很垃圾(第二题调试删了但没完全删 这一场感觉是纯数学呀 T1 枚举 时间复杂度:\(O(1)\) 空间复杂度:\(O(1)\) code: #include<bits/stdc++.h> using namespace std; const i ......
day5 day

Learn Git in 30 days—— 第 23 天:修正 commit 过的版本历史记录 Part 5

写的非常好的一个Git系列文章,强烈推荐 原文链接:https://github.com/doggy8088/Learn-Git-in-30-days/tree/master/zh-cn 我们上一篇文章谈到的 Rebase 是用来将现有的两个分支进行「重新指定基础版本」,执行 Rebase 之后,也 ......
版本 commit 历史 Learn days

【LeetCode】收集树中金币

链接 题目 给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间有一条边。再给你一个长度为 n 的数组 coins ,其中 coins ......
金币 LeetCode

[代码随想录]Day51-单调栈part02

题目:503. 下一个更大元素 II 思路: 总之就是走两次nums,可以拼接,也可以用下面的取余方式。 代码: func nextGreaterElements(nums []int) []int { lens := len(nums) res := make([]int, lens) for i ......
随想录 随想 代码 part Day

随想录Day2|977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵Ⅱ

随想录Day2|977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵Ⅱ 977. 有序数组的平方 LeetCode题目 文章讲解 视频讲解 给定一个按非递减顺序的整数数组nums,返回每个数字的平方组成的新数组,也要按照非递减顺序排序。 1 <= nums.length <= 10 ......
数组 随想录 矩阵 螺旋 随想