数列 前缀 区间 算法

9.23算法

删除链表的倒数第N个节点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2: 输入:head = [1], n = 1输出:[]示例 3: 输入:head = [1,2], n = ......
算法 9.23 23

网络拥塞控制算法总结-Chameleon自动调参工具

快手联合东南大学、清华大学在SIGCOMM'23提交了一篇poster:《Chameleon: Automatic and Adaptive Tuning for DCQCN Parameters in RDMA Networks》,描述了一种可自动调节DCQCN流控参数的工具,企图将复杂、枯燥而又 ......
算法 Chameleon 工具 网络

算法第一次作业

主要写一下自己写代码时所遇到的坑点,代码基本都是与网上的类似。 Problem A. 优美的立方质数 时间限制 1000 ms 内存限制 64 MB 题目描述 如果一个质数能被表示为三个不同的质数的和的形式,那么我们称它为立方质数。现在给你一个数n,判断它是不是立方质数。 输入数据 正整数n,n<= ......
算法 第一次

落基山脉(区间dp)

题意 题目链接:https://www.luogu.com.cn/problem/P9325 给一段山脉的高度,然后从中截取一段长度为 i 的区间,求最小不对称值。不对称值就是这段区间里,最左边的高度与最右边的高度的差值加上倒数第二和第二,……。然后输出区间长度从 1 到 n 的最小不对称值。 思路 ......
区间

算法基础之高精度总结

高精度算法分类 分类:加、减、乘、除 其中加减乘都适用于两个数都是高精度,除法因为除数是高精度的话不好用整除的方法,所以除法时被除数是高精度,除数是整型。 高精度加减乘除的异同点 加和乘 相同点 需要从低位到高位处理 for(int i=stra.size()-1;i>=0;i--) c.push_ ......
高精 高精度 算法 基础

算法基础之快速排序

quick_sort方法中如果 i=l,j=r 会死循环的分析 示例代码 void quick_sort(int a[],int l,int r){ if(l>=r) return; int i=l,j=r; //此处设置会导致死循环 int x = num[(l+r)>>1]; while(i<j ......
算法 基础

算法基础之二分查找

原题链接 二分查找中的mid+1和mid-1的问题 二分查找中的边界问题处理不好很容易导致死循环和计算错误的问题,以题目 数的范围为例。 题目大意 ​ 二分查找重复数第一次出现的位置和最后一次出现的位置。 数学含义 ​ 第一次位置即 找到 一个长度最大的 >=X 区间的 左边界 ​ 最后一次位置即 ......
算法 基础

算法训练day8 LeetCode 344

算法训练day8: LeetCode 344.541.151.剑指offer05.58. 344.反转字符串 题目 344. 反转字符串 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) class Solution { public: void revers ......
算法 LeetCode day8 day 344

算法题——定义一个方法自己实现 toBinaryString 方法的效果,将一个十进制整数转成字符串表示的二进制

用除基取余法,不断地除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。 private static String toBinaryString(int number) { StringBuilder sb = new StringBuilder(); while (tru ......
方法 十进制 二进制 整数 字符串

常用算法模版

常用算法模版 今天学会在 https://godbolt.org/ 看汇编了。顺便卡了下常数,以及简单的(不是)压行。 快读 signed read() { signed num = 0, flag = 1; char ch = getchar(); for (; !isdigit(ch); ch ......
算法 模版 常用

算法题——实现类似parseInt的方法

Scanner sc = new Scanner(System.in);String str = "";while(true){ System.out.println("请输入"); String str1 = sc.nextLine(); if(str1.length() < 1 || str1. ......
算法 parseInt 方法

【算法】字符串

1 反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。 1. 双指针 class Solution: def reverseString(se ......
字符串 算法 字符

【算法】哈希表

1 哈希表理论基础 1.1 哈希表 哈希表是根据关键码的值而直接进行访问的数据结构。一般哈希表都是用来快速判断一个元素是否出现集合里。 1.2 哈希函数 哈希函数如下图所示,通过hashCode把名字转化为数值,一般hashcode是通过特定编码方式,可以将其他数据格式转化为不同的数值。如果hash ......
算法

网络拥塞控制算法总结-PolyCC

字节跳动在SIGCOMM'23以Poster形式提交了一篇论文《PolyCC: Poly-Algorithmic Congestion Control》,试图将各种拥塞控制算法整合到一个统一的框架里。其理由是近40年来各种渠道发布的各种拥塞控制算法,没有一种算法能解决所有网络场景(不同的应用,不同的 ......
算法 PolyCC 网络

JavaScript实现排序算法

目录前言排序算法冒泡排序选择排序插入排序归并排序快速排序计数排序基数排序 前言 排序算法是《数据结构与算法》中最基本的算法之一,本篇使用JavaScript语言实现各种常见排序算法。 排序算法 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一 ......
算法 JavaScript

代码随想录算法训练营-动态规划-1|509. 斐波那契数、70. 爬楼梯

509. 斐波那契数 1 class Solution: 2 def fib(self, n: int) -> int: 3 if n <= 2: 4 return n 5 6 prev1, prev2 = 0, 1 7 for _ in range(2, n+1): 8 sum_value = p ......
随想录 训练营 随想 算法 楼梯

【算法】链表

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

代码随想录算法训练营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)的增长率相同,这称作为算法的渐近时间复杂度,简称时 ......
算法 性能分析 性能

基于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

算法打卡|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】递归算法

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

常用的校验算法

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

高维前缀和

考虑高维前缀和,可以把每一维前缀和 比如:三维前缀和 for(i=1; i<=a; i++) for(j=1; j<=b; j++) for(k=1; k<=c; k++) f[i][j][k] += f[i-1][j][k]; for(i=1; i<=a; i++) for(j=1; j<=b; ......
高维 前缀

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

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