拓扑 前缀 线性leetcode

拓扑排序实现循环依赖判断

本文方案脱离Spring Bean的管理,通过算法实现的方式,完成对象循环依赖的判断,涉及的知识点包括:邻接矩阵图、拓扑排序、循环依赖。本文会着重讲解技术实现,具体算法原理不再复述 ......
拓扑

LeetCode-总入口

LeetCode刷题整理 LeetCode-1-二叉树 LeetCode-2-动态规划 LeetCode-3-二分查找 LeetCode-4-BFS/DFS/回溯 LeetCode-5-双指针 LeetCode-10-位操作 10大排序算法+topK 链表操作 2021秋招-数据结构-栈、队列、数组 ......
LeetCode 入口

【算法】【线性表】两个排序数组的中位数

1 题目 两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为 O(log(m + n))。 中位数的定义: 这里的中位数等同于数学定义里的中位数。 中位数是排序后数组的中间值。 如果有数组中有n个数且n是奇数,则中位数为 A((n-1)/2)。 如果有数组中有n个数 ......
中位数 数组 线性 算法 两个

[LeetCode19-链表-中等] 删除链表的倒数第N个节点

这道题也是关于链表的题目,题目原意是这样的,给你一个链表,删除这个链表的倒数第n个结点,并返回头结点(也就是其余的结点组成的新链表) 比如 1->3->5->7->9 n =2 也就是删除倒数第2个结点,值为7的结点。返回头结点为 1->3->5->9 ......
节点 LeetCode 19

[ LeetCode ] 67. Add Binary

题目 Given two binary strings a and b, return their sum as a binary string. 思考 题外话:根据LeetCode premium的说法,这题是no.4最常被Facebook面试问到的题目 这题是二进制相加的问题 什么是二进制 二进 ......
LeetCode Binary Add 67

[LeetCode Hot 100] LeetCode155. 最小栈

题目描述 思路一:使用辅助栈 定义一个[数据栈]来支持push、pop、top操作 定义一个[辅助栈],其栈顶为当前的最小值,以支持常数时间复杂度的getMin操作 思路二:使用ArrayDeque 栈元素中除了保存当前值之外,额外保存当前最小值 使用静态内部类 方法一:对应思路一 class Mi ......
LeetCode Hot 100 155

模拟集成电路设计系列博客——4.2.2 线性区晶体管跨导器

4.2.2 线性区晶体管跨导器 本节我们将讨论使用工作在线性区的晶体管构成的跨导器。需要说明的是,在下面介绍的电路中,并不是所有的晶体管都处于先行区。一些晶体管被偏置在饱和区,但是电路的跨导由一到两个被偏置在线性区的关键晶体管来决定。 首先我们会议一下对于n管来说线性区的电流公式: \[I_D=\m ......
晶体管 电路设计 晶体 线性 电路

Leetcode刷题day9-栈.队列-栈转队列.队列转栈

232.用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop()  ......
队列 Leetcode day9 day

机器学习的算法——线性回归

1.回归问题的定位 我们知道机器学习分为有监督学习和无监督学习,无监督学习主要是聚类方面的算法,而有监督问题主要分为回归和分类两类 而这线性回归就属于有监督学习,且属于其中的回归类问题,另外有一种逻辑回归,他却是属于分类问题的一部分。 2.线性回归 (1)大体思路 首先它是利用数理统计中的回归分析来 ......
线性 算法 机器

【算法】【线性表】搜索旋转排序数组(有重复数据)

1 题目 跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。 样例 1: 输入: A = [] target = 1 输出: false 解释:数组为空,1不在数组中。 样例 2: 输入: A = [3,4 ......
数组 线性 算法 数据

[LeetCode Hot 100] LeetCode20. 有效的括号

题目描述 思路: 栈的经典应用。 注意下遇到右括号的代码,即边界情况: // 遇到右括号,则进行括号匹配 if (!stack.isEmpty() && stack.peek() == match(c)) { // 如果匹配则直接弹出栈顶元素 stack.pop(); } else { // 如果不 ......
LeetCode 括号 Hot 100 20

机器学习-线性回归-最大似然估计求解-解析解-01

最大似然估计 已经从某一分布中获取到n个样本 并且假设改样本的分布服从某一个分布f(θ), θ为需要估计的参数,根据这n个样本去推导θ的值 就叫做最大似然估计,假设样本服从某分布,根据样本计算出分布中的参数,参数计算出之后,就能去进行预测, 正态分布概率密度: 假设样本的误差 服从正态分布 最大似然 ......
线性 机器 01

线性回归

一些术语 线性回归 线性回归就是用线性函数来拟合数据 注意 y-hat 和 y 的区别 成本函数 成本函数可以表现预测值和训练集中实际值的误差。因此,可以通过 minimize 成本函数来找到更加拟合的回归函数。 梯度下降算法解决线性回归问题 梯度下降算法 ......
线性

拓扑排序

const int N = 100010; int n,m,a,b; vector<int> e[N], tp; int din[N];//入度数组 bool toposort(){ queue<int> q; for(int i = 1; i <= n; i++) if(din[i]==0) q. ......
拓扑

[LeetCode Hot 100] LeetCode295. 数据流的中位数

题目描述 思路:一个大根堆+一个小根堆+保持数量 一个大根堆用来记录数轴左边的数值 一个小根堆用来记录数轴右边的数值 大根堆的容量要么等于小根堆的容量(此时是偶数个有序整数列表),要么大根堆的容量比小根堆的容量大1(此时是奇数个有序整数列表) 如果数量不符合上述条件,则将超过容量的那个堆的堆顶元素插 ......
LeetCode 中位数 数据流 数据 Hot

[LeetCode Hot 100] LeetCode215. 数组中的第K个最大元素

题目描述 思路:小顶堆 维护一个大小为K的小顶堆 遍历所有元素: 如果当前堆中元素个数小于K,则将元素添加到堆中 如果当前堆中元素个数等于K,则判断第K + 1 方法一: class Solution { public int findKthLargest(int[] nums, int k) { ......
LeetCode 数组 元素 Hot 100

LeetCode刷题记录

LeetCode刷题记录 目录LeetCode刷题记录88. 合并两个有序数组题目解题思路代码实现测试用例27. 移除元素题目解题思路代码实现测试用例26.删除有序数组中的重复项题目解题思路代码实现测试用例80. 删除有序数组中的重复项 II题目解题思路代码实现测试用例169. 多数元素题目解题思路 ......
LeetCode

[LeetCode Hot 100] LeetCode347. 前K个高频元素

题目描述 思路:小顶堆 首先遍历整个数组,并是用哈希表记录每个数字出现的次数,并形成一个"出现次数数组"。 找出原数组的前k个高频元素,就相当于找出"出现次数数组"的前K大的值。 建立一个小顶堆,然后遍历"出现次数数组" 如果堆的元素个数小于k,就可以直接插入堆中。 如果堆的元素个数等于k,则检查堆 ......
LeetCode 元素 Hot 100 347

线性表

线性表的定义 线性表是具有相同数据类型的N(N=>0)个数据元素的有限序列,N为表长,N=0 时 线性表为空表。 graph LR A1 --> A2 --> A3 --> A4 线性表的基本操作 initList(&L):初始化表。构造一个空的线性表L,分配内存空间。 DestroyList(&L ......
线性

【算法】【线性表】搜索旋转排序数组(无重复数据)

1 题目 给定一个有序数组,但是数组以某个元素作为支点进行了旋转(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值target进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。 样例 1: 输入: 数组 = [ ......
数组 线性 算法 数据

[LeetCode] 1903. Largest Odd Number in String

You are given a string num, representing a large integer. Return the largest-valued odd integer (as a string) that is a non-empty substring of num, or ......
LeetCode Largest Number String 1903

Leetcode刷题day8-字符串.匹配项下标.重复字符串

KMP内容没看:明天面试完再看!!! https://programmercarl.com/0028.实现strStr.html#思路 28.找出字符串中第一个匹配项的下标 28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode) 给你两个字符串 haystack 和 needle ,请 ......
字符串 字符 下标 Leetcode day8

线性空间笔记

Upd 哈哈,现在系统学了下线性代数,感觉自己之前的死磕很有意思。线性代数本身就是解决线性方程组相关问题的,线性空间与之的关联性是必然的。然而在那时作为一个完全的小白能悟到这么多已经很不错了,大家看个乐子吧。 前言 本来是不想写的,因为这一坨实在是太难了~(难受)。 其实高斯消元法是很容易理解的,就 ......
线性 笔记 空间

【LeetCode-中等-链表】两数相加

这是个关于链表的题目, 以前在C#中写代码时,对链表接触比较少,所以刚好接这个题目来更好的熟悉一下链表 题目大概是这样的,给你两个非空的链表,表示两个非负的整数. 它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字 =》 首先我们来理解这句话是什么意思 我们来看一个链表 1->5-> ......
LeetCode

[LeetCode Hot 100] LeetCode2. 两数相加

题目描述 思路:模拟 每次3个数相加:l1链表的值 + l2链表的值 + 进位 如果 l1链表不为空 或者 l2链表不为空 或者 进位不为0 我们就执行循环 那么和存储的是 t % 10 进位就是t / 10 因为题目需要创造一条链表,所以我们创建一个dummy结点的话会方便一点。 方法一: /** ......
LeetCode LeetCode2 Hot 100

LeetCode876. 链表的中间结点

题目描述 思路:快慢指针 快指针一次走两步 慢指针一次走一步 当快指针到达末尾的时候,慢指针所指的就是链表的中点 方法一: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ......
结点 LeetCode 876

[LeetCode Hot 100] LeetCode86. 分隔链表

题目描述 思路 可以将链表分成两个小链表,一个链表中的元素大小都小于x,另一个链表中的元素都大于等于x,然后再把这两条链表连接到一起,就得到题目想要的结果。 这个题类似于合并两个有序链表:只不过另一个链表只有唯一一个节点x。 合并这两个链表。 方法一: /** * Definition for si ......
LeetCode Hot 100 86

[LeetCode Hot 100] LeetCode23. 合并K个升序链表

题目描述 思路:优先队列 使用优先队列这个数据结构,对于这个数据结构,我们不用去管内部是如何实现的,我们只要知道有这么一种数据结构能帮助我们将一堆数据塞到优先队列这一个黑盒中,然后我们可以获取这堆数中最小的值或者最大的值。 代码一: /** * Definition for singly-linke ......
LeetCode 升序 Hot 100 23

共享式以太网采用总线型拓扑结构通信方式简介

共享式以太网是早期局域网的主要形式,它主要采用总线型拓扑结构进行通信。在这种结构中,所有的站点都通过相应的硬件接口直接连接到一条共享的通信介质上。这条通信介质通常为同轴电缆,各个站点能被所有其他的站点接收。 在通信方式上,共享式以太网主要采用CSMA/CD(Carrier Sense Multipl ......
拓扑 以太网 总线 结构 方式

高维前缀和

对于求高维前缀和,我的理解是在维度数乘总点数的复杂度下求前缀和。 首先可以先看看二维前缀和。 如果使用容斥的方法,像这样: for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ f[i][j]=a[i][j]+f[i-1][j]+f[i][j-1]-f[i-1] ......
高维 前缀