[贪心_8] 跳跃游戏 | 单调递增的数字 | 坏了的计算器
目录
1.跳跃游戏
题解
2.单调递增的数字
证明
3.坏了的计算器
题解
解法一:正向推导
解法二:正难则反
1.跳跃游戏
链接: 55. 跳跃游戏
给你一个非负整数数组 nums
,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true
;否则,返回 false
。
示例 1:
输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
示例 2:
输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
这道题和上一篇文章第一题,几乎一模一样,无非上面问的是跳到最后一个位置最小跳跃次数
这道题问的是能否跳到最后一个位置。
对步数 实现双指针 区间的维护模拟,来看 要走多少步
题解
一种 常见错误
完全参考 上篇文章的 的解法 2:利用层序遍历的过程
class Solution {
public:bool canJump(vector<int>& nums) {int left=0,right=0;int n=nums.size();while(left<=right){int tmp=right;for(int i=left;i<=tmp;i++){right=max(right,i+nums[i]);}left=tmp+1;if(right>=n-1) return true;}return false;}
};
2.单调递增的数字
链接: 738. 单调递增的数字
当且仅当每个相邻位数上的数字 x
和 y
满足 x <= y
时,我们称这个整数是单调递增的。
给定一个整数 n
,返回 小于或等于 n
的最大数字,且数字呈 单调递增 。
示例 1:
输入: n = 10
输出: 9
示例 2:
输入: n = 1234
输出: 1234
示例 3:
输入: n = 332
输出: 299
算法原理:
解法一:暴力解法 -> 暴力枚举
不是给了我们一个n,然后让找到小于等于n的最大数字,且数字是单调递增的。
所以我们可以从n枚举到0,只要找到数字是单调递增的,就返回。因为我们是从大到小枚举所以这个数一定是小于等于n并且是最大的那个数。
- 从大到小的顺序,枚举 [n,0] 区间内的数字
- 判断数字是否是 “单调递增的”
这里最主要的就是判断一个数是单调递增的。肉眼很好判断,但是让计算机不好判断,这里我们有两个常用方法:
第一种方法:我们遇到有个数字的时候,如果想处理某一位的时候,最常用的方式就是将数字转化为字符串。
比如要找数字中的每一位,如果单看数字1234你很难找每一位,但是我们可以将1234 转化为 “1234”,此时就可以用指针来遍历每一位
class Solution {
public:int monotoneIncreasingDigits(int n) {//倒着 遍历for(int i=n;i>=0;i--){string tmp=to_string(i);bool check=true;for(int j=1;j<tmp.size();j++){if(tmp[j]<tmp[j-1]){check=false;break;}}if(check) return i;}return 0;}
};
第二种方法:% 10 , / 10
prev记录之前%10得到的数字,cur记录/10之后然后当前%10得到的数字。
class Solution {
public:int monotoneIncreasingDigits(int n) {for(int i=n;i>=0;i--){bool check=true;int ans=i;while(ans){int tmp=ans%10;ans/=10;int cur=ans%10;if(cur>tmp) {check=false;break;}}if(check) return i;}return 0; }
};
这两种方法都会超时!时间复杂度是O(nlogn),O(logn)表示把数字中的每一位都提取出来时间复杂度是O(logn)
解法二:贪心(找规律)
假设有下面这样一个数,我们观察1-5是递增的,从5后面开始就是递减的。此时第一个贪心,如果前面的数是递增的我们会不会去修改它?肯定不会!修改高位势必会给高位某个数减小,影响太大了。
- 如果高位单调递增的话,我们不去修改
- 从5之后开始下降,我们最终要想找一个单调递增的话,调整一下后面的数使它从5开始递增并且尽可能的大,但是这个想法是实现不了的,你是会让4变成5,但是整个数相比之前就变大了。所以这个策略不行,调整4367使它从5之后开始递增是实现不了的。原因就是后面数的变化受到5的限制。如何解除这个限制呢?让这个5减小1变成4,然后的数都变成9,绝对是最大递增的。
2. 从左往右,找到第一个递减的位置,使其减小1,后面的数全部修改成 9
- 但是这里还有个问题,比如下面这个数,5是重复的,从左到右扫描到最后一个5的位置,但是执行刚才的策略是让最后一个5减少1,后面数都变成9,但是不行啊,你让最后一个5变成4,这个数就不是一个递增的了。其实我们应该调整第一个5变成4,后面的数都变成9
3. 从左往右,找到第一个递减的位置,从这个位置向前推,推到相同区域的最左段使其减小1,后面的数全部修改成 9
class Solution {
public:int monotoneIncreasingDigits(int n) {string ret=to_string(n);int sz=ret.size();for(int i=0;i<sz-1;i++){if(ret[i]>ret[i+1]){while(i > 0 && ret[i-1] == ret[i]) i--; // 回退到第一个递减位置ret[i]-=1;while(i<sz-1)ret[++i]='9';return stoi(ret);}}return n; }
};
证明
证明方法:反证法
假设贪心解是错误的,那必定会存在一个最优解,证明一下这个最优解是不存在的,那我们的贪心解就是最优的。
这里我们分开讨论,第一种贪心解得到的数和原数个数是匹配的,第二种个数不匹配。
- 先看第一种情况,假设贪心解不是最优解,那势必会存在一个最优解,最优解是严格大于贪心解并且是严格递增的。其次位数是一样的,贪心解位数都一样,最优解比贪心解大,位数肯定也是一样的。位数一样,从左扫描最优解肯定存在某一位是大于贪心解某一位的。
- 这里可以分为3个区域,递增区域,让原数减1区域,以及后面的区域。不过如果前两个区域都是一样的话,第三个区域肯定不存在比999还大的。因此我们只考虑前两个区域最优解的某个数大于贪心解
第一块区域,要么大于1、要么大于2、要么大于3,但是都是不存在的,因为这个数是单调递增的,最小的1333333都比原解还大了。
第二块区域,如果中间这个数比贪心解的这个数大最低就是4,但是也是不存在的,最优解也是一个递增的数如果这个是数4,后面即使全是4,最小的是1234444还比原数大,所以也是不存在的。
-
那后面的区域更别提了,不可能有大于999的数。所以说如果贪心解是错的,根本找不到一个最优解比贪心解大,所以说刚才的假设是错误的,因此我们的贪心解是正确的。 - 接下来我们看位数减少的情况,我们会发现位数减少的这个数正好是最大的减少位数中的最大数,你想找一个最优解比贪心解还大的情况那必定是6位数,如果是6位数还想保证比原数小,那这个数只能是1111111但是比原数大
因此这个最优解也是不存在的,所以我们的贪心就是最优的。
都找不到一个最优解大于贪心解。
3.坏了的计算器
链接: 991. 坏了的计算器
在显示着数字 startValue
的坏计算器上,我们可以执行以下两种操作:
- 双倍(Double):将显示屏上的数字乘 2;
- 递减(Decrement):将显示屏上的数字减
1
。
给定两个整数 startValue
和 target
。返回显示数字 target
所需的最小操作数。
示例 1:
输入:startValue = 2, target = 3
输出:2
解释:先进行双倍运算,然后再进行递减运算 {2 -> 4 -> 3}.
示例 2:
输入:startValue = 5, target = 8
输出:2
解释:先递减,再双倍 {5 -> 4 -> 8}.
题解
解法一:正向推导
以3转化成10为例,我们正向推导有两个操作x2,-1。
- 此时拿到3要么x2,要么-1,此时我们有一个小贪心的想法,为了更快到达,所以选择x2,得到6,这里也有两种选择要么x2,要么-1,如果延续刚才的贪心我们会x2,得到12
- 此时12比10大了,我们只能执行-1操作,得到11,再执行依次-1操作得到10
- 这里我们共进行了4次操作
- 但是我们发现如果再6的时候,不去x2,而先去-1,得到5,然后在去x2,就得到10
- 总共才3次操作,反而比刚才的小贪心更优。
所以说在面临一个数的时候,决策是x2 还是 -1操作,判断标准其实是依赖后面的数来判断前面是x2还是-1好。
所以说如果正向推导有点难,我们可以尝试另一个思路。
解法二:正难则反
我们这道题明显可能反着来做,x2和-1 操作 可以变成/2和+1 操作。所以说我们能正向从3推导到10,那肯定能逆向推导回去。
- 假设我们要从end转化成begin(10 -> 3)
- 正着难推导,难道逆着就好推导吗?确实是的,原因就在于这里/2操作,别忘了我们这道题是没有小数的,没有小数,那谁才能执行/2操作?
- 那肯定是偶数,偶数/2能除尽,奇数/2除不尽。
所以面对奇数的时候只能执行+1操作,面对偶数我们再分情况讨论是/2还是+1。
1.end <= begin
奇数依旧+1,当end <= begin的时候,偶数此时就没有必要执行/2操作。
因为此时end都比begin小了难道你要/2之后在加1吗?那不如直接加1好了。
所以end <= begin,奇数+1,偶数+1,而且这个+1操作也不用一次一次算,我们仅需 begin - end就得到要执行几次+1了。
2.end > begin
奇数依旧+1,偶数要么/2,要么+1,此时这里我们有一个小贪心,因为end大于begin,我们想最少操作次数到达begin,所以我们看似选择/2是更优的。
那这个贪心的想法对不对呢?
我们证明一下先除更优。
- 假设x是个偶数,并且大于begin。
如果不执行/2操作,而执行+1操作,那会得到一个奇数,但是奇数只能加1,然后又变成偶数了,又执行+1操作,又变成奇数,奇数只能+1,又变成偶数了。假设x一共加了k个1。这个k也是个偶数,如果k是奇数接下来还要+1总归要把它先加成一个偶数才行。 - x + k 是大于 begin,必然会执行一次 / 2操作,你想把大的数变成小的数不执行除法操作怎么才能变小呢?所以无论加上多少1最终都会执行一次/2操作,变成(x+k)/2,次数这种操作执行的次数就是 k + 1次
但是如果拿x这个数变成(x+k)/2,先执行/2操作变成 x/2,然后仅需在x/2的基础上加上k/2,就得到(x+k)/2,这种执行操作次数是 1 + k/2次,是比上面执行次数小的。
所以说当 end > begin ,面对偶数我们也不需要分类讨论,仅需执行/2操作。奇数+1,偶数/2,一直到end <= begin的时候,执行begin - end就可以得到整个操作次数。
class Solution {
public:int brokenCalc(int startValue, int target) {//正难则反int cnt=0;while(target>startValue){if(target%2==0)target/=2;elsetarget++;cnt++;}while(target!=startValue){target++;cnt++;}return cnt;}
};
相关文章:
[贪心_8] 跳跃游戏 | 单调递增的数字 | 坏了的计算器
目录 1.跳跃游戏 题解 2.单调递增的数字 证明 3.坏了的计算器 题解 解法一:正向推导 解法二:正难则反 1.跳跃游戏 链接: 55. 跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你…...
Python基于Django的全国二手房可视化分析系统【附源码】
博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...
Spring Boot 升级指南(2.x → 3.x)
🚀 Spring Boot 升级指南(2.x → 3.x) 🔢 1️⃣ 必读文档 📘 当您需要从 Spring Boot 2.x 升级时: • 官方迁移指南 → https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-…...
基于亚马逊云科技构建音频转文本无服务器应用程序
Amazon Transcribe是一项基于机器学习模型自动将语音转换为文本的服务。它提供了多种可以提高文本转录准确性的功能,例如语言自定义、内容过滤、多通道音频分析和说话人语音分割。Amazon Transcribe 可用作独立的转录服务,也可以集成到应用程序中提供语音…...
io_uring概述:现代 Linux 异步 IO 的新范式
一、引言 在 Linux 系统中,I/O 性能一直是高性能服务器、数据库、存储系统的关键瓶颈。传统的 I/O 接口(如 read、write、poll、epoll)已经难以满足现代高吞吐低延迟场景的需求。io_uring 的诞生,正是为了解决这些传统 I/O 模型中…...
定制一款国密浏览器(12):分析SM2签名算法的实现
SM2 是一种非对称加密算法,除了用来进行加密解密外,主要作用还用作数字签名。数字签名是私钥签名,公钥用来验签。由于私钥是不公开的,所以私钥签名还可以防抵赖。 一般的签名流程如下: 发送者对消息计算摘要值。发送者用私钥对摘要值进行签名得到签名值。发送者将原始消息…...
SSE协议
目录 SSE协议协议实现传输格式data 字段id 字段event 字段retry 字段 前后端实现使用案例FastAPI SSE-STARLETTE 模拟大模型推理流🖥 代码:FastAPI SSE-STARLETTE 模拟大模型推理流 SSE协议 SSE,全称是 Server-Sent Events,是一…...
精益数据分析(25/126):关键指标驱动业务发展
精益数据分析(25/126):关键指标驱动业务发展 在创业和数据分析的道路上,我们都在不断探索如何利用数据实现业务的增长与优化。今天,让我们一起深入学习《精益数据分析》中的关键知识点,通过实际案例来理解…...
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
前言 Spring AI Alibaba 开源项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。 项目地址 gitcode平台:ht…...
git 工具
Git教程 Git Bash详细教程 Git教程 Git Bash详细教程-CSDN博客 Download – TortoiseGit – Windows Shell Interface to Git...
利用【指针引用】对【非空单循环链表】进行删除操作
【非空单循环链表】是链式存储结构的其中一种,下面是各个词汇的意思: 先说【单】的意思: 这里指的是【单循环】的,另外在别的地方你会碰到一些不一样的循环链表,比如说是【多重链】的。 单循环 【单循环链表】常在表的…...
2025.4.26_STM32_SPI
1.SPI简介 2.硬件电路 所有SPI设备的SCK(时钟)、MOSI(主机输出从机输入)、MISO(主机输入从机输出)分别连在一起。SCK线只能被主机控制,和I2C相同。 主机另外引出多条SS控制线,分别接到各从机的SS引脚 (SS不用的时候为高电平,当主机需要选中某…...
基于OpenMV+STM32+OLED与YOLOv11+PaddleOCR的嵌入式车牌识别系统开发笔记
基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记 基于OpenMV、STM32与OLED的嵌入式车牌识别系统开发笔记系统架构全景 一、实物演示二、OpenMV端设计要点1. 硬件配置优化2. 智能帧率控制算法3. 数据传输协议设计 三、PyTorch后端核心实现:YOLOv11与PaddleOCR的…...
当JIT遇见K8s
目录 一、技术融合背景:从静态架构到动态生态的范式重构 1.1 动态编译技术的三次进化浪潮 1.2 容器编排系统的动态特性解剖 弹性伸缩的数学建模 服务质量(QoS)的编译场景适配 硬件拓扑感知的编译优化 二、关键技术挑战与突破性解决方案…...
单片机-89C51部分:4、固件烧录
飞书文档https://x509p6c8to.feishu.cn/wiki/M00gwFX3WilLe0kiAmBcPBUsnLc 接线 通过USB线把开发板和电脑连接起来,如果电脑没有安装过USB转串口驱动,在设备管理器中就找不到COM口,而且会有驱动提示叹号,我们可以下载下方驱动安…...
7.13 GitHub Sentinel全链路测试实战:自动化框架+零误差传输,QPS提升6倍!
GitHub Sentinel全链路测试实战:自动化框架+零误差传输,QPS提升6倍 GitHub Sentinel Agent 用户界面设计与实现 关键词:前后端联调测试、数据传输验证、接口稳定性测试、命令行工具测试、自动化测试框架 测试前后端功能与数据传输稳定性 1. 全链路测试策略设计 采用分层…...
stm32之EXIT外部中断详解
目录 1.引入: STM32F1031.1 中断路径上的3个部件1.2 STM32F103的GPIO中断1.1.1 GPIO控制器 -- AFIO1.1.2 EXTI1.1.3 NVIC1.1.4 CPU1. PRIMASK2. FAULTMASK3. BASEPRI 1.3 中断执行流程 2.旋转编码器介绍3.实验3.1 EXIT3.1.1 结构体3.1.2 函数 3.2 NVIC3.2.1 结构体3.2.2 函数 3…...
STM32 开发 - stm32f10x.h 头文件(内存映射、寄存器结构体与宏、寄存器位定义、实现点灯案例)
概述 STM32F10x.h 是 STM32F1 系列微控制器的核心头文件,提供了所有外设寄存器的定义和内存映射 一、内存映射 #define PERIPH_BASE ((uint32_t)0x40000000)#define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE 0x…...
UniApp 的现状与 WASM 支持的迫切性
一、UniApp 的跨平台优势与性能瓶颈 UniApp 凭借“一次开发,多端发布”的核心理念,已成为跨平台开发的主流框架之一。然而,随着移动应用场景的复杂化(如 3D 渲染、音视频处理、AI 推理),传统的 JavaScript…...
Prometheus、Zabbix和Nagios针对100个节点的部署设计架构图
一、Prometheus 架构图(联邦集群+分布式存储) graph TD;subgraph 全局监控层GlobalProm[Prometheus Server] -->|联邦查询| RegionalProm1[区域Prometheus]GlobalProm -->|联邦查询| RegionalProm2[区域Prometheus]GlobalProm -->|联邦查询| RegionalProm3[区域Pro…...
坚果派已适配的鸿蒙版flutter库【持续更新】
坚果派已适配的鸿蒙版flutter库 序号原仓版本适配仓文章解读是否完成1https://pub.dev/packages/fluttertoast8.2.12https://gitcode.com/nutpi/FlutterToasthttps://www.nutpi.net/thread?topicId1575是2https://pub.dev/packages/flutter_udid4.0.0https://gitcode.com/nut…...
代码随想录打卡|Day28 动态规划(理论基础、斐波那契数列、爬楼梯、使用最小花费爬楼梯)
动态规划 Part01 理论基础 代码随想录讲解链接 视频讲解链接 斐波那契数 力扣题目链接 代码随想录链接 视频讲解链接 题目描述: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一…...
《USB技术应用与开发》第四讲:实现USB鼠标
一、标准鼠标分析 1.1简介 1.2页面显示 其中页面显示的“”不用管它,因为鼠标作为物理抓包,里面有时候会抓到一些错误,不一定是真正的通讯错误,很可能是本身线路接触质量不好等原因才打印出来的“”。 1.3按下鼠标左键 &#x…...
elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
前言 在公司部elk的时候发现kibana的web界面一直很卡,数据量为0也会很卡,es群集状态正常,资源足够。 报错信息 [2025-03-17T09:54:50.19400:00][INFO ][status] Kibana is now available (was degraded) [2025-03-17T09:55:03.28000:00][I…...
2025.4.26总结
今天把马良老师的《职场十二法则》看完后,感触极大,这们课程就是一场职场启蒙课。 虽然看过不少关于职场的书籍,但大多数是关于职场进阶,方法方面的。并没有解答“面对未来二三十年的职场生涯,我该怎么去看待自己的工…...
一、UI自动化测试01--认识和元素定位方法
目录 一、自动化测试1. 自动化应用场景2. ⾃动化测试的优缺点3. ⾃动化测试的分类 二、UI ⾃动测试1. 适合使用的项目2. 实现时机3. 常⻅的UI⾃动化测试⼯具4. Selenium 框架5. Web ⾃动化环境部署6. Web ⾃动化基本代码 二、元素定位1. 浏览器开发者⼯具⽅法1: 直接获取信息⽅…...
目标检测原理简介
目标检测是一类计算机视觉任务,简单来说,目标检测可被定义为在计算机中输入一张图像,计算机需要找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,如图一所示。目标检测是计算机视觉领域的核心问题之一,相较于最原始的将整张图片分类为某一类别,目标检测不光可…...
软件设计原则
开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,需要使用接口和抽象类。 因…...
Postman脚本处理各种数据的变量
一、变量是字符串里列表, 如 "["100","101","102","103","108"]" //把字符串的变量处理成列表 var myListJSON.parse(pm.environment.get(giftTabId)) #giftTabId变量名 //设置随机取值 var rando…...
嵌入式硬件开发工具---万用表---示波器---仿真器
万用表 主要功能: 测量交直流电压、电流 测量电阻、二级管及电路通断 其他----电容、频率、温度----特殊的万用表 * 检查电路是否正常 * 检查电路连接情况 示波器 主要功能: 以波形展示电信号随时间变化的关系 主要指标: 带宽---大…...
数据预处理之特征选择 (Feature Selection)
哈喽,大家好,我是我不是小upper~ 今天的文章和大家来聊聊数据与处理方法中常用的特征选择 在开始说特征选择前,咱们先搞清楚这个所谓的“特征”到底是啥玩意儿。 打个比方说,如果我们要训练一个模型来判断某个人是否会买一双运…...
Java基础 — 循环
介绍 Java基础循环是程序流程控制的核心结构,主要用于重复执行特定代码块。常见的循环包括for、while和do-while三种形式,开发者可根据不同场景灵活选择。 合理使用循环关键字能有效提升代码执行效率。掌握循环结构的核心在于理解执行流程与条件判断的时…...
参考平面的宽度-信号与电源完整性分析
参考平面的宽度: 计算特征阻抗时假设参考平面是无限宽的平面。在参考平面的宽度远大于线宽或介质厚度时,这种假设是正确的。但是PCB板上的参考平面经常被反焊盘掏空,当互连线经过参考平面掏空区域附近时,掏空的局部互连线参考平面变窄&#x…...
【Linux】Centos7 安装 Docker 详细教程
一、安装步骤 步骤一:确定你是Centos7及以上的版本 cat /etc/redhat-release 步骤二:卸载旧版本 查看官方文档:CentOS | Docker Docs 步骤三:安装GCC等工具 1.首先确保 CentOS7 能上外网 ping www.baidu.com 2.更新 Centos7…...
开源AI智能名片链动2+1模式S2B2C商城小程序源码赋能下的社交电商创业者技能跃迁与价值重构
摘要:在移动互联网深度重构商业生态的背景下,社交电商创业者面临流量成本攀升、用户粘性不足、供应链协同低效等核心痛点。本文以“开源AI智能名片链动21模式S2B2C商城小程序源码”技术体系为研究对象,通过分析其技术架构、商业逻辑及实战案例…...
计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合
长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),旨在解决传统RNN在处理长序列数据时出现的梯度消失和梯度爆炸问题。以下为你详细介绍其基本原理: 核心思想:LSTM的核心思想是引入记忆单元和门控机制来控制信息的流动,从而解决传统RNN的梯度消失问题。记忆单元类似…...
阿里云域名智能解析至国内外AWS的合规化部署指南
引言 随着全球化业务的发展,企业常面临地域合规性与用户体验优化的双重挑战。本文以阿里云域名解析为核心,结合AWS中国区(北京/宁夏)与Global区域部署,提供一套完整的解决方案,实现: 智能流量调度:国内用户访问AWS中国区,海外用户自动路由至AWS Global全链路合规:满…...
一、鸿蒙编译篇
一、下载源码和编译 https://blog.csdn.net/xusiwei1236/article/details/142675221 https://blog.csdn.net/xiaolizibie/article/details/146375750 https://forums.openharmony.cn/forum.php?modviewthread&tid897 repo init -u https://gitee.com/openharmony/mani…...
计算机网络 | 应用层(3)-- 因特网中的电子邮件
💓个人主页:mooridy 💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记 关注我🌹,和我一起学习更多计算机的知识 🔝🔝🔝 目录 3. 因特网中的电子邮件 …...
Missashe考研日记-day27
Missashe考研日记-day27 0 写在前面 博主昨晚有事所以没学专业课,白天学了其他科,但是觉得不太好写博客,就合在今天一起写好了。 1 专业课408 学习时间:3h30min学习内容: 今天把内存管理部分剩下的关于分页分段和段…...
【Castle-X机器人】五、物联网模块配置与调试
持续更新。。。。。。。。。。。。。。。 【Castle-X机器人】五、物联网模块配置与调试 五、物联网模块配置与调试5.1 物联网模块调试物联网模块测试:控制物联网模块:物联网模块话题五、物联网模块配置与调试 5.1 物联网模块调试 调试前需确保Castle-x与mqtt主机服务器处于同…...
FastAPI 零基础入门指南:10 分钟搭建高性能 API
一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…...
有关图的类型的题目(1)
1、图着色问题 #include<bits/stdc.h> using namespace std; const int N510,MN*N; int color[N]; vector<int> g[M]; int v,m,k,n;void add(int a,int b){g[a].push_back(b);g[b].push_back(a); } int judge(int cnt){if(cnt!k)return 0;for(int i1;i<v;i){fo…...
threejs 零基础学习day01
一、threejs本地环境搭建 1、下载源码 (1)进入threejs官网,把源码下载到本地访问。https://github.com/mrdoob/three.js (2)使用git命令的方式进行下载(优点是,threejs更新频繁,这…...
dubbo 异步化实践
DubboService public class AsyncOrderFacadeImpl implements AsyncOrderFacade {private Logger logger LoggerFactory.getLogger(AsyncOrderFacadeImpl.class);// 构建线程池ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(1000, 1000, 10, TimeUnit.SECOND…...
Web端ER可视化
背景介绍 因业务需要,团队决定对原ER图功能进行重构。重构来自两方面,一是功能上进行了细分,二是实现方式发生了变化。下面是重构前后对比: 重构前重构后功能方面只有逻辑模型层面的ER图包括概念模型、逻辑模型、物理模型3个层面的ER图实现方式单页面、antv/g6微前端、Rea…...
Java在云计算、大数据、云原生下的应用和优势 - 面试实战
Java在云计算、大数据、云原生下的应用和优势 - 面试实战 第一轮提问 面试官:马架构,请简单介绍一下Java在云计算中的主要应用场景有哪些? 马架构:Java在云计算中的主要应用场景包括微服务架构设计、容器化部署(如D…...
精益数据分析(27/126):剖析用户价值与商业模式拼图
精益数据分析(27/126):剖析用户价值与商业模式拼图 在创业和数据分析的领域中,每一次深入学习都是一次成长的契机。今天,我们继续秉持共同进步的理念,深入研读《精益数据分析》,剖析用户价值的…...
从 Lambda 到 DSL:Kotlin 接口实现的演进之路
Kotlin 中优化 Android 接口实现的几种方式 在 Android 开发中,Kotlin 提供了多种优雅的方式来优化接口实现。以下是几种优化方案: 1. 使用 SAM 转换简化单方法接口 对于单一抽象方法(Single Abstract Method, SAM)接口: // 优化前 butto…...
GitOps进化:深入探讨 Argo CD 及其对持续部署的影响
什么是 GitOps? 虽然软件开发生命周期的大部分已经实现自动化,但基础设施仍然在很大程度上依赖于人工,需要专业团队的参与。随着当今基础设施需求的不断增长,实施基础设施自动化变得越来越重要。现代基础设施需要具备弹性&#x…...