算法 标记 原理 垃圾

算法学习day57动态规划part17-516、647

package LeetCode.DPpart17; /** * 516. 最长回文子序列 * 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 * 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 * */ public class Lo ......
算法 动态 part day 516

算法学习day56动态规划part16-583、72

package LeetCode.DPpart16; /** * 583. 两个字符串的删除操作 * 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 * 每步 可以删除任意一个字符串中的一个字符。 * */ public class Delet ......
算法 动态 part day 583

JUC同步锁原理源码解析一 之ReentrantLock

# JUC同步锁原理 ## 1.锁的本质 ### 1.什么是锁? ​ 通俗来讲,锁要保证的就是原子性,就是一个代码块不允许多线程同时执行,就是锁。从生活的角度上来说,就比如你要去上厕所,当你在上厕所期间,你会把门锁上,其他人只能排队。不允许多个人同时上厕所。 ### 2.锁的底层实现 ​ java语 ......
ReentrantLock 源码 原理 JUC

算法学习day55动态规划part15-115、392

package LeetCode.DPpart15; public class DistinctSubsequences_115 { public int numDistinct(String s, String t) { int[][] dp = new int[s.length() + 1][t ......
算法 动态 part day 115

算法题总结-完全背包问题

原题 现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ; 每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 输入描述 ``` 对于每组测试数据: 第一行:n 砝码的种数(范围[1,10]) 第二行:m1 m2 m ......
算法 背包 问题

m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 MPC(Model Predictive Control)模型预测控制算法是一种先进的控制算法,能够有效地解决非线性、多变量、约束条件等复杂系统的控制问题。永磁直线同步电机是一种高性能、高效率的电机,广泛应用于机器人、 ......

浅谈 thinkphp composer 扩展包加载原理

# 浅谈 thinkphp composer 扩展包加载原理 ## 本文将介绍 ThinkPHP 中 Composer 扩展包的加载原理,帮助读者更好地理解和应用该功能。 ## 前言 如题,今天感觉好久没有更新博客了。最近迷上了物联网开发。一直在研究stm32、51这些东西。想起来前几天群里面有人问 ......
thinkphp composer 原理

万能欧几里得算法

从这篇博客学的:[link](https://www.luogu.com.cn/blog/ix-35/solution-p5170) 。 解决这样的一类问题: 有一条直线 $y=\frac{Px+B}{Q}$ ,其中 $x\in(0,L],\mid B \mid\lfloor \frac{Pa+B} ......
算法

「学习笔记」Garsia-Wachs 算法

> 前言 本文的资料和图片均来自 $\texttt{OI-Wiki}$。 ## 引入 > 题目描述 在一个操场上摆放着一排 $N$ 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的 $2$ 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将 $N$ 堆石 ......
Garsia-Wachs 算法 笔记 Garsia Wachs

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

# 五、在大小为n的集合中,一个k字符串构成一个k排列的概率是多少?这个问题和生日悖论有什么关系? ## 文心一言: 在大小为n的集合中,一个k字符串构成一个k排列的概率是1/k!,这是由于排列的总数是k!,而每个字符串被选中的概率是相等的,因此每个字符串构成一个排列的概率是1/k!。 这个问题和生 ......
文心 导论 算法 chatgpt VS

synchronized关键字与Lock锁原理

## 1.synchronized synchronized关键字是JVM提供的内置锁,是通过Monitor两种来实现的,分别是当其作用在类上和方法上时。 **类上:** - 测试代码 ``` public class Test { public void test() { synchronized ......
synchronized 关键字 原理 关键 Lock

Pasos和RAFT算法

Paxos 提出时间1990年,RAFT提出时间2013年。RAFT 是Paxos的简化版,或者说是提高投票效率,但是降低了投票公平性的妥协方案。 ### RAFT 分布式raft(Replicated And Fault Tolerant)选举算法原理 - 分成三个角色,领导者,跟随者,和候选者。 ......
算法 Pasos RAFT

图像拼接算法技术报告

本篇博客先是介绍了图像拼接的一般流程,然后给出了自己手写方法和opencv官方代码的对比,最后在探索小节通过阅读opencv的源码解释了为什么动态物体出现时我的会有鬼影,而opencv stich不会,本质上是算法的思想不同。 ......
算法 图像 报告 技术

go语言编写算法

1、冒泡排序 // 冒泡排序 a := []uint8{9, 20, 10, 23, 7, 22, 88, 102} for i := 0; i < len(a); i++ { for k := i + 1; k < (len(a) - i); k++ { if a[i] > a[k] { a[i] ......
算法 语言

代码随想录算法训练营第七天| 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.替换空格 、 151.翻转字符串里的单词 、 剑指Offer58-II.左旋转字符串

344.反转字符串 代码: 1 void reverseString(vector<char>& s) { 2 3 int i = 0; 4 int j = s.size() - 1; 5 while (i < j) 6 { 7 char mid = s[i]; 8 s[i] = s[j]; 9 s ......
字符串 字符 随想录 左旋 Offer

jvm垃圾回收及内存模型

1、了解垃圾回收之前,必须先了解内存模型 2、垃圾回收区域 a、 首先要标记垃圾,找出垃圾 b、Java垃圾回收(一)_java 垃圾回收_头发慢点掉的小马的博客-CSDN博客 垃圾回收器 方法区不需要连续的内存,可以选择固定大小或者可扩展。并且还可以选择不实现垃圾收集。相对而言,垃圾收集行为在这个 ......
模型 内存 垃圾 jvm

集合计数 容斥原理

[TOC] ## 思路历程 ### 1.列个思路: 我们要得到什么? 看看样例说明: 【样例说明】 假设原集合为{A,B,C} 则满足条件的方案为:{AB,ABC},{AC,ABC},{BC,ABC},{AB},{AC},{BC} 我们看到,样例说明将每一个方案列成了一个“集合里套集合”的形式。 我 ......
原理

雪花算法-分布式唯一ID

用途(用于解决什么问题) 实现(原理) 参考文献 1.SnowFlake 雪花算法详解与实现 2.实际应用中的问题及解决方案 ......
分布式 算法 雪花

Promise在JavaScript中的工作原理——全面的新手指南

JavaScript 具有执行异步(或异步)指令的能力。这些指令在后台运行,直到它们完成处理。 异步指令不会阻止 JavaScript 引擎主动接受和处理更多的指令。这就是 JavaScript 本质上是非阻塞的原因。 JavaScript 中有一些异步特性,其中之一就是Promises。要使用 p ......

[ARM汇编]计算机原理与数制基础—1.1.3 二进制补码

在计算机中,为了表示有符号整数(即正数和负数),通常采用二进制补码表示法。二进制补码不仅可以表示负数,还能简化计算机的加法和减法运算。接下来,我们将介绍二进制补码的概念及其计算方法。 #### 原码、反码和补码 在讨论补码之前,我们先了解一下原码和反码的概念。 1. **原码**:直接将一个有符号整 ......
补码 二进制 原理 计算机 基础

Handler机制实现原理总结

Handler一般用于线程间通信,如常用的子线程使用handler让主线程更新UI。那么这是怎么实现的呢? 我们先把这个大问题分解成多个小问题: 1. `post();postDelayed();sendMessage();sendEmptyMessage();`等方法有什么不同? 2. Handl ......
原理 机制 Handler

策略模式:整体替换算法

策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在策略模式中,我们定义了多个算法,并将每个算法封装在一个独立的类中(__策略类__),以便在运行时根据需要进行切换。这使得算法与调用其算法的客户端代码分离,从而实现了更高的灵活性和可维护性。 主要实现方式:1 策略接口 -> n * 具体策略 ......
算法 整体 策略 模式

电路原理图简明入门

元件类型符号 R: 电阻C:电容L:电感D:二极管Q:晶体管X:晶体J:连接器,跳线器U:半导体(集成芯片) 大的半导体一般有更具体的名称,如存储芯片,命名RAM0,RAM1。 元件常见标记 顶部横线:表示低电平有效 CS:片选信号 三角:边缘触发输入 GND:公共端,接地(假设的地,一般是电源的负 ......
电路 原理

深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等

# # 深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等 # 1.元学习概述 ## 1.1元学习概念 元学习 (Meta-Learning) 通常被理解为“学会学习 (Learning-to-Learn)”, 指的是在多个学习阶段改进学习算法的过程。 在基础学习过程中, 内部 ......
深度 模型 原理 概念 13

$nextTick原理及作用(更新视图)

一、原理 Vue的数据更新是一种延迟异步更新 是一个用于在DOM更新完成后执行回调函数的方法 其能够监听DOM更新完成 当数据更新了,在dom中渲染后,⾃动执⾏该函数 异步更新队列:当数据发生变化,Vue将开启一个异步更新队列,视图需要等队列中所有数据变化完成之后,再统一进行更新 二、作用 Vue在 ......
视图 nextTick 原理 作用

kmp 算法

问题描述 kmp算法解决的是字符串匹配问题,即:字符串P是否是字符串S的子串?如果是,它出现在s的哪些位置?这里我们称 S 为主串,P 为模式串。 思路 首先是暴力匹配算法(Brute-Force算法),代码如下: void BruteForce(string s, string p) { int ......
算法 kmp

LRU 算法与 LFU 算法

算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
算法 LRU LFU

快速选择算法

问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
算法

字符串哈希算法

问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
字符串 算法 字符

[ARM汇编]计算机原理与数制基础—1.1.4 逻辑运算

在计算机中,逻辑运算是对二进制数据进行操作的基础。逻辑运算主要包括以下几种:与(AND)、或(OR)、非(NOT)和异或(XOR)。接下来,我们将详细介绍这几种逻辑运算的原理及其应用。 #### 与(AND)运算 与运算的规则如下: - 0 AND 0 = 0 - 0 AND 1 = 0 - 1 A ......
逻辑 原理 计算机 基础 ARM