算法leetcode世界334

算法题——最短距离

题目 {{uploading-image-50077.png(uploading...)}} 代码 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> using name ......
短距离 算法

【LeetCode动态规划#05】背包问题的理论分析(基于代码随想录的个人理解,多图)

背包问题 问题描述 背包问题是一系列问题的统称,具体包括:01背包、完全背包、多重背包、分组背包等(仅需掌握前两种,后面的为竞赛级题目) 下面来研究01背包 实际上即使是最经典的01背包,也不会直接出现在题目中,一般是融入到其他的题目背景中再考察 因为是学习原理,所以先跳过最原始的问题模板来学。 0 ......
随想录 随想 背包 LeetCode 理论

递归问题——算法复习随笔

递归思维通常会用到函数的调用栈,每次调用函数都会将参数和局部变量压入栈中,直到问题被分解成一个最小规模的子问题,然后逐步返回结果,将每个子问题的结果组合起来得到最终结果。 ......
算法 随笔 问题

LeetCode 142.环形链表II

力扣LeetCode 142.环形链表II 题目跳转链接 解题思路: 代码随想录: 142.环形链表II 从头结点出发一个指针, 从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。 ......
环形 LeetCode 142

算法学习笔记(20): AC自动机

AC自动机 前置知识: 字典树:可以参考我的另一篇文章 算法学习笔记(15): Trie(字典树) ~~KMP~~:可以参考 KMP - Ricky2007,但是不理解KMP算法并不会对这个算法的理解产生影响。 使用场景 AC自动机是一种著名的多模式匹配算法。 可以完成类似于KMP算法的工作,但是由 ......
自动机 算法 笔记 20

LeetCode 面试题 02.07. 链表相交

面试题 02.07. 链表相交 力扣 题目跳转链接 思路参考:代码随想录 跳转链接 错误代码: class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode* f ......
LeetCode 02 07

【ACM算法竞赛日常训练】DAY3题解与分析【旅游】【tokitsukaze and Soldier】

DAY3共2题: 旅游 tokitsukaze and Soldier 🎈 作者:Eriktse 🎈 简介:19岁,211计算机在读,现役ACM银牌选手🏆力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)🚀 🎈 原文链接(阅读原文获得 ......
题解 算法 tokitsukaze Soldier DAY3

算法API--Arrays

二分查找方法的细节1:数组中的元素必须是有序的,并且是升序的 二分查找方法的细节2: 拷贝数组的方法细节: sort按照指定规则排序的底层原理:这里需要二分查找和插入排序,匿名内部类的知识 代码实现: import java.util.Arrays;import java.util.Comparat ......
算法 Arrays API

LeetCode 1574 删除最短子数组使剩余数组有序

LeetCode | 1574.删除最短子数组使剩余数组有序 给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1: 输入:arr = [1,2,3,10 ......
数组 LeetCode 1574

LeetCode|1032. 字符流

题目链接:1032. 字符流 设计一个算法:接收一个字符流,并检查这些字符的后缀是否是字符串数组 words 中的一个字符串。 例如,words = ["abc", "xyz"] 且字符流中逐个依次加入 4 个字符 'a'、'x'、'y' 和 'z' ,你所设计的算法应当可以检测到 "axyz" 的 ......
字符 LeetCode 1032

LeetCode|1574. 删除最短的子数组使剩余数组有序

题目链接:1574. 删除最短的子数组使剩余数组有序 给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1: 输入:arr = [1,2,3,10,4,2 ......
数组 LeetCode 1574

学生成绩的[排名算法][课程排名计算范围]选项及成绩[总评]的解释说明

中高等职业类或普通高校类院校的学生成绩管理,和初高中学生的成绩管理是不一样的。初高中同一个年级的学生的学习课程一般都是一样,排名采用班级排名和年级排名就可以了,但中高等职业类或普通高校类院校的学生,同一个年级,不同的专业,课程是不一样的。某些课程假设一样,也是单独在同一个班级或同一个年级的同一个专业 ......
成绩 总评 算法 范围 课程

排序算法

#排序算法 本文默认升序(从小到大)排序 ##1. 入门排序 ###1.1 选择排序 在后(n-i)个元素中找到一个最小的,放在第i位。 时间复杂度为O($n^2$)。 代码实现如下: for(int i=0;i<n;i++){ int minn=i; for(int j=i+1;j<n;j++) ......
算法

[更新中][算法][动态规划][dynamic programing]力扣dp学习计划题单

最近开始跟着力扣的官方题单开始做题,先从动态规划开始做起,以后在此记录每周做的题目,做总结。 基本思路 动态规划利用递推或递归来解决问题,通常这个问题可以被拆分成相同的小问题,我们通过解决一个小问题继而解决更高一层的较大问题,整合其结果一直到原问题上。例如,斐波那契数列就是一个很典型的可以用动态规划 ......
算法 programing dynamic 动态

分布式技术原理与算法解析 02 - 分布式资源管理与负载调度

分布式体系结构之集中式结构 集中式结构就是由一台或多台机器组成中央服务器,所有数据存储于此,所有业务也先由其处理。多节点与中央服务器连接,并将自己信息汇报给中央服务器,由中央服务器同一进行资源和任务调度。特点是部署结构简单,中央节点无需考虑对任务的多节点部署,节点服务器间无需通信和协作,只要与中央服 ......
分布式 算法 资源管理 原理 资源

代码随想录算法训练营Day53 动态规划

#代码随想录算法训练营 代码随想录算法训练营Day53 动态规划|● 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划 1143.最长公共子序列 题目链接:1143.最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个 ......
随想录 训练营 随想 算法 代码

分布式技术原理与算法解析 01 - 分布式协调与同步

关于 电商系统:最看重吞吐量,为了更多的处理用户访问和订单业务 IoT:最看重资源占用率,在某些设备上资源都是KB级的 电信业务:最看重响应时间、完成时间、可用性,保证通话质量 HPC:最看重加速比,这种计算特带是耗时长 大数据:最看重加速比,处理时间较HPC短,但也到达小时级 云计算:最看重操作耗 ......
分布式 算法 原理 技术 01

leetcode1574

双指针法,结果只能从最左边或者最右边或者最左边加上最右边中取 class Solution { public: int findLengthOfShortestSubarray(vector<int>& arr) { int n = arr.size(),res = 1,res2 = 1,res3 ......
leetcode 1574

Leetcode 22. 括号生成

题目链接在这里: 还是比较经典的括号匹配问题,这题学习了函数内套子函数的写法,但是关于全局变量还是有一点问题要问问龙哥,先挖个坑放这…… from ast import List # class Solution: # def generateParenthesis(self, n: int) -> ......
括号 Leetcode 22

Leetcode 18. 四数之和(双指针)

题目链接在这里:四数之和 这道题和前面的三数之和一模一样,只是需要枚举前两个数而已,需要注意一下前两个数的重复点的判断,并且不要忘记排序。 from ast import List class Solution: def fourSum(self, nums: List, target: int): ......
之和 指针 Leetcode 18

[LeetCode] 2316. Count Unreachable Pairs of Nodes in an Undirected Graph

You are given an integer n. There is an undirected graph with n nodes, numbered from 0 to n - 1. You are given a 2D integer array edges where edges[i] ......
Unreachable Undirected LeetCode Count Graph

LeetCode 19 删除链表的倒数第N个节点

LeetCode 19 删除链表的倒数第N个节点 题目跳转链接 class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummyHead=new ListNode(0); dumm ......
节点 LeetCode 19

LeetCode 24. 两两交换链表中的节点

24. 两两交换链表中的节点 力扣题目跳转链接 具体解题思路和答案可以参考:代码随想录: 24. 两两交换链表中的节点 ####自我错误思考过程记录: &#10008 错误代码: //思路: class Solution { public: ListNode* swapPairs(ListNode* ......
节点 LeetCode 24

【LeetCode动态规划#04】不同的二叉搜索树(找规律,有点像智力题)

不同的二叉搜索树 力扣题目链接(opens new window) 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 思路 题意分析 先找一下关系 当n = 1时,如果元素就是1,以1为头节点 1 当n = 2时,分别以1和2为头节点 1 2 / \ 2 1 然后当n ......
智力 LeetCode 规律 动态 04

机器学习算法(五):基于企鹅数据集的决策树分类预测

决策树的主要优点: 1. 具有很好的解释性,模型可以生成可以理解的规则。 2. 可以发现特征的重要程度。 3. 模型的计算复杂度较低。 决策树的主要缺点: 1. 模型容易过拟合,需要采用减枝技术处理。 2. 不能很好利用连续型特征。 3. 预测能力有限,无法达到其他强监督模型效果。 4. 方差... ......
企鹅 算法 机器 数据

算法—二分法详解

二分法详解 1.二分法 在计算机科学中,二分查找算法也称折半搜索算法,对数搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一 ......
二分法 算法

LeetCode 59. 螺旋矩阵 II

这道题可以采用模拟法来实现。我们可以设置上下左右四个边界,然后模拟螺旋填充元素。具体来说,我们定义 left、right、top、bottom 四个变量代表当前需要填充的最左边、最右边、最上面、最下面的位置,然后根据当前位置,依次填充矩阵。 具体可以按照以下步骤实现: 初始化矩阵 matrix,并且 ......
矩阵 螺旋 LeetCode 59 II

Leetcode 17.电话号码的字母组合 (模拟)

题目链接在这里:电话号码的字母组合 这道题主要学习的是哈希表的应用:可以用大括号来代表建立哈希表,以及子函数的实现:可以直接在主函数中定义子函数,将$string$拼成一个整个的长$string:$"".join(list), 注意前面的这个空串是必要的,它代表子串之间直接相连,没有其他的字符。 f ......
电话号码 字母 Leetcode 号码 电话

KMP字符串匹配算法

KMP算法的要点是避免回溯和Next[]数组,其中,Next[]数组中存的是最长公共前后缀的长度. 1.KMP模板 例题:HDU2087剪花布条 int Next[N],cnt;//构建Next[]数组 void getNext(char *p,int plen){ Next[1]=Next[0]= ......
字符串 算法 字符 KMP

Leetcode 15 & 16 (双指针)

都是比较经典的双指针问题,我们可以从中总结一些双指针的规律 首先这两题如果en做的话就是 $O(n^{3})$ 的算法,暴力去找。但是我们可以发现这三个值是满足一定约束的,所以考虑使用方法将它降到 $O(n^2)$ 。如果双指针,一个在头,一个在尾,两个向中间夹,根据约束条件合理选择向中间夹的策略, ......
指针 Leetcode amp 15 16