LeetCode --- 443周赛
题目列表
Q1. 到达每个位置的最小费用
Q2. 子字符串连接后的最长回文串 I
Q3. 子字符串连接后的最长回文串 II
Q4. 使 K 个子数组内元素相等的最少操作数
一、到达每个位置的最小费用
题目要求返回从队尾到达任意位置的最小费用,规则:如果下标 i i i 在前面,则与 i i i 交换位置需要 c o s t [ i ] cost[i] cost[i],如果如果下标 i i i 在后面,交换位置不用支付费用。
贪心:对于任意位置 i i i,我们不能先去 j ( j > i ) j\ (j>i) j (j>i),再到 i i i,这样的方案不如直接到达 i i i,但是如果 j ≤ i j\le i j≤i,则可以考虑,因为从 j → i j \rightarrow i j→i 不用支付费用,所以这题的本质就是求前缀最小值
代码如下
// C++
class Solution {
public:vector<int> minCosts(vector<int>& cost) {int n = cost.size();for(int i = 1; i < n; i++){cost[i] = min(cost[i], cost[i-1]);}return cost;}
};
# Python
class Solution:def minCosts(self, cost: List[int]) -> List[int]:return list(accumulate(cost, min))
二、子字符串连接后的最长回文串 I & II
题目要求我们从字符串 s s s 和 t t t 中各自选出一个子串拼接成一个回文串
思路如下:
-
分类讨论:设 s ′ s' s′ 是 s s s 的子串, t ′ t' t′ 是 t t t 的子串
-
如果 l e n ( s ′ ) = l e n ( t ′ ) len(s')=len(t') len(s′)=len(t′),则将 t t t 反转之后,就是求 s s s 和 t t t 中最长公共子串,做法类似 718. 最长重复子数组,可以用动态规划来解决
- 设 f [ i ] [ j ] f[i][j] f[i][j] 表示 s s s 中以 s [ i ] s[i] s[i] 为结尾的子串与 t t t 中以 t [ j ] t[j] t[j] 为起始的子串(倒序)的最长匹配长度
- 如果 s [ i ] = = t [ j ] s[i]==t[j] s[i]==t[j],则 f [ i ] [ j ] = f [ i − 1 ] [ j + 1 ] + 2 f[i][j]=f[i-1][j+1]+2 f[i][j]=f[i−1][j+1]+2,否则 f [ i ] [ j ] = 0 f[i][j]=0 f[i][j]=0
- 为了防止越界,将 i + 1 i+1 i+1,得 f [ i + 1 ] [ j ] = f [ i ] [ j + 1 ] + 2 f[i+1][j]=f[i][j+1]+2 f[i+1][j]=f[i][j+1]+2
-
如果 l e n ( s ′ ) > l e n ( t ′ ) len(s')>len(t') len(s′)>len(t′),令 s ′ = s 1 ′ + s 2 ′ s'=s_1'+s_2' s′=s1′+s2′ 且 l e n ( s 1 ′ ) = l e n ( t ′ ) len(s_1')=len(t') len(s1′)=len(t′),则 s 1 ′ + s 2 ′ + t ′ s_1'+s_2'+\ t' s1′+s2′+ t′ 是回文的,所以 s 2 ′ s_2' s2′ 本身应该是回文的,而 s 1 ′ s_1' s1′ 和 t ′ t' t′ 依旧是求最长公共子串。这里我们用中心扩展法枚举 s 2 ′ s_2' s2′ 回文串,然后统计最长的 s 1 ′ + s 2 ′ + t ′ s_1'+s_2'+\ t' s1′+s2′+ t′。
- 贪心:对于以 i i i (或者 i 、 i + 1 i、i+1 i、i+1) 为中心的回文串 s 2 ′ s_2' s2′,我们只要看最长的那个回文串就行。比如 . . . a b c b a . . . ...abcba... ...abcba...,以 c c c 为中心扩展,我们不需要统计 s 1 ′ + c + t ′ s_1'+c+t' s1′+c+t′ 和 s 1 ′ + b c b + t ′ s_1'+bcb+t' s1′+bcb+t′ 的长度,而只需要统计 s 1 ′ + a b c b a + t ′ s_1'+abcba+t' s1′+abcba+t′ 的长度即可
- 因为对于相同长度的 s 1 ′ + s 2 ′ + t ′ s_1'+s_2'+\ t' s1′+s2′+ t′, s 2 ′ s_2' s2′ 越长,则 s 1 ′ s_1' s1′ 和 t ′ t' t′ 的长度就越短,则更有可能从字符串 s s s 和 t t t 中找出符合条件的 s 1 ′ s_1' s1′ 和 t ′ t' t′
- 那么有没有可能 s 2 ′ s_2' s2′ 短, s 1 ′ s_1' s1′ 很长,导致 s 1 ′ + s 2 ′ + t ′ s_1'+s_2'+\ t' s1′+s2′+ t′ 的长度很长呢?不可能,以 . . . d d a b c b a e . . . ...ddabcbae... ...ddabcbae... 为例,设 s 1 ′ = . . . d d a b , s 2 ′ = c , t = b a d d . . . s_1'=...ddab,s_2'=c,t=badd... s1′=...ddab,s2′=c,t=badd... 和 s 1 ′ ′ = . . . d d , s 2 ′ ′ = a b c b a , t ′ ′ = d d . . . s_1''=...dd,s_2''=abcba,t''=dd... s1′′=...dd,s2′′=abcba,t′′=dd...,由于 s 1 ′ ′ s_1'' s1′′ 是 s 1 ′ s_1' s1′ 的前缀,所以 s 2 ′ s_2' s2′ 短, s 1 ′ s_1' s1′ 很长的策略最多和我们的贪心策略得到的长度一致,不可能优于我们的贪心策略,故我们的贪心是正确的
-
如果 l e n ( s ′ ) < l e n ( t ′ ) len(s')<len(t') len(s′)<len(t′),同上
-
代码如下
// C++
class Solution {
public:int longestPalindrome(string s, string t) {auto f = [](const string& s, const string& t)->int{int n = s.size(), m = t.size();int ans = 0;vector dp(n + 1, vector<int>(m + 1));vector<int> mx(n + 1); // mx[i+1] 记录以 s[i] 为结尾的子串与 t 中任意位置为起始位置的最长公共子串的擦汗高难度// dp[i][j] = dp[i-1][j+1] + 2 if s[i] == t[j]// 防止越界 dp[i+1][j] = dp[i][j+1] + 2 if s[i] == t[j]for(int i = 0; i < n; i++){for(int j = m - 1; j >= 0; j--){if(s[i] == t[j]) dp[i+1][j] = dp[i][j+1] + 2;mx[i+1] = max(dp[i+1][j], mx[i+1]);ans = max(ans, dp[i+1][j]);}}for(int i = 0, l, r; i < n; i++){// 以 i 为中心,进行中心扩展for(l = i - 1, r = i + 1; l >= 0 && r < n && s[l] == s[r]; l--, r++);ans = max(ans, r - l - 1 + mx[l+1]);// 以 i,i+1 为中心,进行中心扩展for(l = i, r = i + 1; l >= 0 && r < n && s[l] == s[r]; l--, r++);ans = max(ans, r - l - 1 + mx[l+1]);}return ans;};int ans = f(s, t);// 由于 len(s') < len(t') 和 len(s') < len(t') 是同一个逻辑,可以倒序后,复用代码逻辑ranges::reverse(s);ranges::reverse(t);return max(ans, f(t, s)); }
};
# Python
def max2(x:int, y:int)->int:return x if x > y else y
class Solution:def f(self, s:str, t:str)->int:n, m = len(s), len(t)dp = [[0]*(m+1) for _ in range(n+1)]mx = [0]*(n+1)ans = 0for i in range(n):for j in range(m-1, -1, -1):if s[i] == t[j]:dp[i+1][j] = dp[i][j+1] + 2mx[i+1] = max2(mx[i+1], dp[i+1][j])ans = max2(ans, dp[i+1][j])for i in range(n):l = r = iwhile l >= 0 and r < n and s[l] == s[r]:l -= 1r += 1ans = max2(ans, r - l - 1 + mx[l+1])l, r = i, i + 1while l >= 0 and r < n and s[l] == s[r]:l -= 1r += 1ans = max2(ans, r - l - 1 + mx[l+1])return ansdef longestPalindrome(self, s: str, t: str) -> int:return max2(self.f(s, t), self.f(t[::-1], s[::-1]))
三、使 K 个子数组内元素相等的最少操作数
看到将数组划分为多个子数组,很容易想到 划分型 D P 划分型DP 划分型DP,基本的状态定义为 f [ i ] [ j ] f[i][j] f[i][j] 表示将前 i i i 个数划分为 j j j 个子数组所需的最少操作次数。本题也是同理。
-
动态规划
- 状态定义:设 f [ i ] [ j ] f[i][j] f[i][j] 表示将前 i i i 个数划分出 j j j 个长度恰好为 x x x 的子数组(子数组中元素相同)所需的最少操作次数
- 状态转移:依旧是选或不选的思路
- 选以 n u m s [ i ] nums[i] nums[i] 为右端点的长度为 x x x 的子数组,则 f [ i ] [ j ] = f [ i − x ] [ j − 1 ] + o p s [ i ] f[i][j]=f[i-x][j-1]+ops[i] f[i][j]=f[i−x][j−1]+ops[i],其中 o p s [ i ] ops[i] ops[i] 表示让区间 [ i − x + 1 , i ] [i-x+1,i] [i−x+1,i] 内元素相同的最小操作次数
- 不选以 n u m s [ i ] nums[i] nums[i] 为右端点的长度为 x x x 的子数组,则 f [ i ] [ j ] = f [ i − 1 ] [ j ] f[i][j]=f[i-1][j] f[i][j]=f[i−1][j]
- 故 f [ i ] [ j ] = m a x ( f [ i − 1 ] [ j ] , f [ i − x ] [ j − 1 ] + o p s [ i ] ) f[i][j]=max(f[i-1][j],f[i-x][j-1]+ops[i]) f[i][j]=max(f[i−1][j],f[i−x][j−1]+ops[i])
- 初始化
- 当 j = 0 j=0 j=0 时, f [ i ] [ 0 ] = 0 f[i][0]=0 f[i][0]=0,因为不需要进行任何操作
- 当 i < j ∗ x i<j*x i<j∗x 时, f [ i ] [ j ] = i n f f[i][j]=inf f[i][j]=inf,因为元素不足以分成 j j j 个长度为 x x x 的子数组
-
如何求解 o p s [ i ] ? ops[i]\ ? ops[i] ?,即如何快速计算出将 [ i − x + 1 , i ] [i-x+1,i] [i−x+1,i] 区间中的数变成同一个数字的最小操作次数
-
给定一些数字,每次可以对一个数进行 + 1 / − 1 +1/-1 +1/−1 的操作,让它们都变成哪个数字,进行的操作次数最小?中位数贪心
-
如何求解操作次数?
- 根据上图,操作次数为 x − n u m s [ 0 ] + x − n u m s [ 1 ] + . . . + x − n u m s [ j ] + n u m s [ j + 1 ] − x + n u m s [ j + 2 ] − x + . . . + n u m s [ n − 1 ] − x = ( j + 1 ) ∗ x − p r e [ j ] + p r e [ n ] − p r e [ j + 1 ] − ( n − j − 1 ) ∗ x , j = n / 2 x-nums[0]+x-nums[1]+...+x-nums[j]+nums[j+1]-x+nums[j+2]-x+...+nums[n-1]-x=(j+1)*x-pre[j]+pre[n]-pre[j+1]-(n-j-1)*x,j=n/2 x−nums[0]+x−nums[1]+...+x−nums[j]+nums[j+1]−x+nums[j+2]−x+...+nums[n−1]−x=(j+1)∗x−pre[j]+pre[n]−pre[j+1]−(n−j−1)∗x,j=n/2
- 但是题目所给的数组是无序的,并且我们需要维护动态区间 [ i − x + 1 , i ] [i-x+1,i] [i−x+1,i] 中的中位数
可以用对顶堆来维护第 n / 2 n/2 n/2 个数,即中位数,同时维护 p r e [ j ] 、 p r e [ n ] − p r e [ j + 1 ] pre[j]、pre[n]-pre[j+1] pre[j]、pre[n]−pre[j+1],即维护两个堆的元素和
-
具体代码如下
// C++
class Solution {using LL = long long;
public:long long minOperations(vector<int>& nums, int x, int k) {// 对顶堆int K = (x + 1) / 2;multiset<int> stL, stR; // 由于 nums 中可能有重复元素,所以用 multisetLL sumL = 0, sumR = 0;auto add = [&](int x){// 优先向 stL 中插入数据if(stL.size() < K){stL.insert(x);sumL += x;return;}stR.insert(x);sumR += x;auto mn = stR.begin();auto mx = prev(stL.end());if(*mx > *mn){sumL += *mn - *mx;sumR += *mx - *mn;stL.insert(*mn);stR.insert(*mx);stL.erase(mx);stR.erase(mn);}};auto remove = [&](int x){auto it = stR.find(x);if(it != stR.end()){stR.erase(it);sumR -= x;return;}it = stL.find(x);stL.erase(it);sumL -= x;int mn = *stR.begin();stL.insert(mn);sumL += mn;stR.erase(stR.begin());sumR -= mn;};int n = nums.size();vector<LL> ops(n);for(int i = 0; i < n; i++){add(nums[i]);if(i >= x - 1){int mid = *stL.rbegin();ops[i] = 1LL * K * mid - sumL + sumR - 1LL * (x - K) * mid;remove(nums[i - x + 1]);}}vector f(n + 1, vector<LL>(k + 1, LLONG_MAX/2));for(int i = 0; i <= n; i++) f[i][0] = 0;for(int j = 1; j <= k; j++){for(int i = x*j; i <= n; i++){f[i][j] = min(f[i-1][j], f[i-x][j-1] + ops[i-1]);}}return f[n][k];}
};
相关文章:
LeetCode --- 443周赛
题目列表 Q1. 到达每个位置的最小费用 Q2. 子字符串连接后的最长回文串 I Q3. 子字符串连接后的最长回文串 II Q4. 使 K 个子数组内元素相等的最少操作数 一、到达每个位置的最小费用 题目要求返回从队尾到达任意位置的最小费用,规则:如果下标 i i i …...
从零构建大语言模型全栈开发指南:附录与资源-3.面试与进阶-200道大模型面试真题与职业发展路线图-基础理论篇50题
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 附录与资源-3. 面试与进阶:200道大模型面试真题与职业发展路线图一、大模型面试真题分类与解析1. 基础理论篇(50+题精选)2. 进阶实战篇(50+题精选)3. 应用场景篇(70题精选)二、职业发展路线图1. …...
使用Android Studio开发基于Java+xml的安卓app之环境搭建
以下是使用Android Studio搭建基于Java和XML的Android应用开发环境的详细步骤: 一、系统要求 操作系统:Windows 7/8/10/11(64位)内存:建议8GB及以上磁盘空间:至少5GB空闲(建议预留10GB以上&…...
GD32H759IMT6 Cortex-M7 OpenHarmony轻量系统移植——4.1版本升级到5.0.3
笔者在去年利用国庆时间,将Cortex-M7 的国产厂商兆易创新GD32H459移植OpenHarmony轻量系统,但是适配不太完善——只能选择liteos-m接管中断。这样导致使用中断非常麻烦。于是笔者最近将接管中断模式修改为不接管,这样可以方便的使用gd32提供的…...
学习汇编随手记
学习汇编随手记 前言 本笔记是关于王爽汇编的笔记,覆盖不全,到了内中断就完结了,听从学长建议,我跑去学xv6了,x86告辞。 1. 寄存器 1.1 寄存器初步 (A,B,C,D)X是通用寄存器,通常存放一般性数据&#x…...
打造高效英文单词记忆系统:基于Python的实现与分析
在当今全球化的世界中,掌握一门外语已成为必不可少的技能。对于许多学习者来说,记忆大量的英文单词是一个漫长而艰难的过程。为了提高学习效率,我们开发了一个基于Python的英文单词记忆系统。这个系统结合了数据管理、复习计划、学习统计和测试练习等多个模块,旨在为用户提…...
【漫话机器学习系列】182.噪声修正线性单元(Noisy ReLU)
噪声修正线性单元(Noisy ReLU)详解 1. 引言 在深度学习中,修正线性单元(ReLU, Rectified Linear Unit) 是一种常见的激活函数,具有计算简单、梯度稳定等优点。然而,ReLU 也有一些缺点…...
连续数据离散化与逆离散化策略
数学语言描述: 在区间[a,b]中有一组符合某分布的数据: 1.求相同区间中另一组符合同样分布的数据与这组数据的均方误差 2.求区间中点与数据的均方误差 3.求在区间中均匀分布的一组数据与这组数据的均方误差 一:同分布数据随机映射 假设在…...
《安富莱嵌入式周报》第352期:手持开源终端,基于参数阵列的定向扬声器,炫酷ASCII播放器,PCB电阻箱,支持1Ω到500KΩ,Pebble智能手表代码重构
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版 https://www.bilibili.com/video/BV1DEf3YiEqE/ 《安富莱嵌入式周报》第352期:手持开源终端&#x…...
游戏引擎学习第205天
回顾 我们今天要实现的是一些实体浏览功能,原本是昨天就计划好的,但因为渲染上的一些问题耽搁了一些时间。 实际上,我们遇到的并不是一个真正的bug,尽管我们花了大约40分钟才搞清楚,最终发现它只是渲染方式的一个正常…...
Boost库搜索引擎项目(版本1)
Boost库搜索引擎 项目开源地址 Github:https://github.com/H0308/BoostSearchingEngine Gitee:https://gitee.com/EPSDA/BoostSearchingEngine 版本声明 当前为最初版本,后续会根据其他内容对当前项目进行修改,具体见后续版本…...
复古千禧Y2风格霓虹发光酸性镀铬金属短片音乐视频文字标题动画AE/PR模板
踏入时光机,重温 21 世纪初大胆、未来主义和超光彩的美学!这是一个动态的 After Effects 模板,旨在重现千禧年的标志性视觉效果——铬反射、霓虹灯发光、闪亮的金属和流畅的动态图形。无论您是在制作时尚宣传片、怀旧音乐视频还是时尚的社交媒…...
如何高效使用 Ubuntu 中文官方网站
Ubuntu 中文官方网站 一、快速导航与核心模块 首页焦点区 顶部菜单栏:快速访问「下载」「文档」「支持」「商店」等核心功能。轮播图区:展示最新版本(如 Ubuntu 24.04 LTS)和特色功能(如 Ubuntu Pro 订阅服务)。搜索框:支持中文关键词搜索(如 "边缘计算"),…...
简单多状态dp问题 + 总结(一)
文章目录 按摩师题解代码 打家劫舍II题解代码 删除并获得点数题解代码 粉刷房子题解代码 按摩师 题目链接 题解 1. 细节处理:题目是有没有客人的时候,所有n等于零时返回零 2. 状态表示:到达i位置时的最长预约时长 3. 状态转移方程…...
2022 CCF CSP-S2.假期计划
题目 4732. 假期计划 算法标签: 搜索, 枚举, 贪心 思路 最多转车 k k k次等价于路线长度小于等于 k 1 k 1 k1, 经过的点没有限制, 注意到点的数量 2500 2500 2500, 因此 n 2 n ^ 2 n2的时间复杂度是可以考虑的, 边的数量 10000 10000 10000, n m n \times m nm时间复杂…...
STM32低功耗模式详解:睡眠、停机、待机模式原理与实践(下) | 零基础入门STM32第九十三步
主题内容教学目的/扩展视频低功耗模式什么是低功耗,模式介绍,切换方法。为电池设备开发做准备。 师从洋桃电子,杜洋老师 📑文章目录 一、低功耗模式基本工作原理1.1 功耗层级对比1.2 工作流程 二、睡眠模式实践2.1 测试程序解析2.…...
【Docker】在Orin Nano上使用Docker
1、安装Docker 1)使用 SDKManager 烧写系统时,选择NVIDIA Container Runtime,将会安装Docker, 并将 NVIDIA GPU 暴露给容器中的应用程序,这样可以在Docker中使用GPU等NVIDIA的特性。 2)使用命令安装 添加源 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \…...
C# 程序脱壳,去除强签名StrongNameRemove
由于.net程序的运行机制,利用Reflector,ilspy等反射工具很容易就能看到原代码。很多程序都做了代码混淆,加壳。代码混淆后反编译乱码,不容易理解;加壳使反编译工具不能正常反射,提示无效的程序集。 需要做…...
【mongodb】mongodb和MySQL体系结构的对比
目录 1. 说明2. 数据存储模型2.1 MySQL2.2 MongoDB 3. 扩展性3.1 MySQL3.2 MongoDB 4. 查询语言4.1 MySQL4.2 MongoDB 5. 索引和性能5.1 MySQL5.2 MongoDB 6. 一致性模型6.1 MySQL6.2 MongoDB 7. 架构组件7.1 MySQL7.2 MongoDB 8. 使用场景7.1 MySQL7.2 MongoDB 9. 总结对比表 …...
【深度学习新浪潮】视觉与多模态大模型文字生成技术研究进展与产品实践
一、研究进展 跨模态架构创新 原生多模态模型:微软KOSMOS系列通过统一框架支持文本、图像、语音等多模态输入输出,实现跨模态推理与迁移。例如,KOSMOS-2.5可处理文本密集图像,生成结构化文本描述,并通过重采样模块优化视觉与语言的对齐。混合专家架构:第三代模型(如Deep…...
麒麟系统桌面版本v10安装教程
下载地址 共享文件下载 - Kylin Distro 虚拟机安装教程 选择默认兼容 内核数量选择2个 内存给2g 存储为单个文件的话,占用你内存大,多个文件的话,用多少就占多少内存 打开虚拟机 开机 补充 安装来源 Live 安装:通过镜像文件进行…...
Python-文件操作
1. 文件操作基础 1.1 打开文件 在Python中使用open()函数来打开文件: file open(example.txt, r) # 以只读模式打开文件文件打开模式: r - 只读(默认)w - 写入,会覆盖已有文件a - 追加,写入到文件末尾…...
Apache 配置负载均衡详解(含配置示例)
Apache 是互联网上最受欢迎的 Web 服务器之一。除了基本的网页服务,它还能通过模块扩展出丰富的功能。其中一个重要用途就是将 Apache 配置成负载均衡器,用于在多个后端服务器之间分配流量,提升网站的性能和稳定性。Google Gemini中国版调用G…...
文章记单词 | 第24篇(六级)
一,单词释义 liner:名词,意为 “班轮;邮轮;衬里;画线者”convention:名词,意为 “大会;会议;习俗;惯例;公约;协定”lavat…...
日本汽车规模性经济计划失败,日产三大品牌的合并合作共赢,还是绝地求生?本田与日产合并确认失败,将成为世界第三大汽车集团愿景失败
本田与日产(含三菱汽车)的合并计划最终因核心矛盾无法调和而宣告失败,这一事件揭示了传统车企在行业变革期的深层困境。以下从合并动机、失败原因、本质判断及未来影响等方面综合分析: 一、合并的初衷:生存压力主导的被动策略 市场危机与财务困境 中国市场溃败:日系品牌在…...
人工智能赋能工业制造:智能制造的未来之路
一、引言 随着人工智能技术的飞速发展,其应用场景不断拓展,从消费电子到医疗健康,从金融科技到交通运输,几乎涵盖了所有行业。而工业制造作为国民经济的支柱产业,也在人工智能的浪潮中迎来了深刻的变革。智能制造&…...
支持selenium的chrome driver更新到135.0.7049.42
最近chrome释放新版本:135.0.7049.42 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only su…...
C++/Qt 模拟sensornetwork的工作
C/Qt 可视化模拟sensornetwork的工作 C/Qt 模拟sensornetwork的工作 C/Qt 可视化模拟sensornetwork的工作内容简介(一) 需求和规格说明(1)问题描述(2)设计目的(3)基本要求࿰…...
无状态版的DHCPv6是不是SLAAC? 笔记250405
无状态版的DHCPv6是不是SLAAC? 笔记250405 无状态版 DHCPv6 不是 SLAAC,但二者在 IPv6 网络中可协同工作。以下是核心区别与协作关系: 本质区别 特性SLAAC无状态 DHCPv6主要功能生成 IPv6 地址(基于路由器通告的前缀)分发 DNS、…...
前端判断值相等的方法和区别
1. (宽松相等) 在比较之前会进行类型转换 可能导致一些意外的结果 0 // true 0 0 // true false 0 // true null undefined // true [1,2,3]1,2,3 // true2. (严格相等) 不进行类型转换 类型和值都必须相同 0 // false 0 0 // false false 0 /…...
AWS全球化低延迟架构实战:助力APP快速上架欧美、加拿大、澳大利亚
作者:AWS解决方案架构师 关键词:AWS全球架构、低延迟优化、多区域部署、Serverless、GDPR合规 一、客户需求分析 客户计划将APP上架至欧美(欧盟)、加拿大、澳大利亚等地区,并要求: 全球用户低延迟访问&…...
Maven使用
配置 Maven repository 教学视频 windows环境 idea配置 Maven项目结构 src:主项目文件 main:项目文件,其中java存放java文件,resource存放其他文件如图片文件等;test存放测试文件,如果需要也可以自己创建一个resources文件 target:主要存放我运行后的jar包等,以及一些…...
笔试强训题(7)
目录 1. Day371.1 旋转字符串(字符串)1.2 合并k个已排序的链表(链表)1.3 滑雪(记忆化搜索) 2. Day382.1 天使果冻(递推 DP)2.2 dd爱旋转(模拟)2.3 小红取数&…...
2023-2024总结记录
概括经历 这一年算是一个人生节点,2023年花了一整年的时间在准备考研,基本上等于一个人奋战,我不怎么去图书馆,只呆在无人的实验室,还好有对象陪我,不然可能要抑郁了。作息上还是很随意,什么时…...
类初始化、类加载、垃圾回收---JVM
创建对象过程 类加载 一个类从被加载到虚拟机内存中开始,到从内存中卸载,整个生命周期需要经过七个阶段:加载 、验证、准备、解析、初始化、使用和卸载。 类加载过程分为三个主要步骤:加载、链接、初始化 加载:通过…...
交换机与ARP
交换机与 ARP(Address Resolution Protocol,地址解析协议) 的关系主要体现在 局域网(LAN)内设备通信的地址解析与数据帧转发 过程中。以下是二者的核心关联: 1. 基本角色 交换机:工作在 数据链…...
元宇宙概念下,UI 设计如何打造沉浸式体验?
一、元宇宙时代UI设计的核心趋势 在元宇宙概念下,UI设计的核心目标是打造沉浸式体验,让用户在虚拟世界中感受到身临其境的交互效果。以下是元宇宙时代UI设计的几个核心趋势: 沉浸式体验设计 元宇宙的核心是提供沉浸式体验,UI设计…...
pycharm 有智能提示,但是没法自动导包,也就是alt+enter无效果
找到file->settings->editor->inspections 把python勾选上,原来不能用是因为只勾选了一部分。...
神经网络与深度学习:案例与实践——第三章(3)
神经网络与深度学习:案例与实践——第三章(3)——基于Softmax回归完成鸢尾花分类任务 实践流程主要包括以下7个步骤:数据处理、模型构建、损失函数定义、优化器构建、模型训练、模型评价和模型预测等, ①数据处理&am…...
LeetCode 249 解法揭秘:如何把“abc”和“bcd”分到一组?
文章目录 摘要描述痛点分析 & 实际应用场景Swift 题解答案可运行 Demo 代码题解代码分析差值是怎么来的?为什么加 26 再 %26? 示例测试及结果时间复杂度分析空间复杂度分析总结 摘要 你有没有遇到过这种情况:有一堆字符串,看…...
【Kafka基础】topic命令行工具kafka-topics.sh:基础操作命令解析
Kafka作为分布式流处理平台的核心组件,其主题管理是每个开发者必须掌握的关键技能。本文将详细解析kafka-topics.sh工具的使用技巧,从基础操作操作开始,助您轻松驾驭Kafka主题管理。 1 创建主题 /export/home/kafka_zk/kafka_2.13-2.7.1/bin/…...
C++ 排序(1)
以下是一些插入排序的代码 1.插入排序 1.直接插入排序 // 升序 // 最坏:O(N^2) 逆序 // 最好:O(N) 顺序有序 void InsertSort(vector<int>& a, int n) {for (int i 1; i < n; i){int end i - 1;int tmp a[i];// 将tmp插入到[0,en…...
Business English Certificates (BEC) 高频词汇学习
Business English Certificates {BEC} 高频词汇 References Cambridge English: Business Certificates, also known as Business English Certificates (BEC), are a suite of three English language qualifications for international business. abandon /əˈbndən/ vt. …...
信息系统项目管理中各个知识领域的概要描述及其管理流程
1. 立项管理 涵义:评估项目可行性,决定是否启动。 流程: 需求分析:识别业务需求或问题。 可行性研究:技术、经济、法律等可行性分析。 项目建议书:提交初步方案。 立项评审:高层审批。 项目…...
OpenAI推出PaperBench
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
基于LSTM的文本分类2——文本数据处理
前言 由于计算机无法认识到文字内容,因此在训练模型时需要将文字映射到计算机能够识别的编码内容。 映射的流程如下: 首先将文字内容按照词表映射到成唯一的数字ID。比如“我爱中国”,将“中”映射为1,将“国”映射到2。再将文…...
神经网络与深度学习:案例与实践——第三章(2)
神经网络与深度学习:案例与实践——第三章(2) 基于Softmax回归的多分类任务 Logistic回归可以有效地解决二分类问题,但在分类任务中,还有一类多分类问题,即类别数 C大于2 的分类问题。Softmax回归就是Log…...
Maven/Gradle的讲解
一、为什么需要构建工具? 在理解 Maven/Gradle 之前,先明确它们解决的问题: 依赖管理:项目中可能需要引入第三方库(如 Spring、JUnit 等),手动下载和管理这些库的版本非常麻烦。标…...
常见的HR面问题汇总
⚠️注意:以下仅是个人对问题的参考,具体情况视个人情况而定~ 1. 你觉得你有哪些优点和缺点? 优点:学习能力强,遇到问题会主动思考和查找解决方案;有责任心,对待工作认真负责&#…...
把握数据治理关键,释放企业数据潜能
数据治理是对数据资产管理行使权力和控制的活动集合,以下是关于它的详细介绍: 一、定义 数据治理是指从使用零散数据变为使用统一主数据、从具有很少或没有组织和流程治理到企业范围内的综合数据治理、从尝试处理主数据混乱状况到主数据井井有条的一个…...