2025高频面试算法总结篇【其他】
文章目录
- 直接刷题链接直达
- LRU Cache
- 买卖股票的最佳时机系列
- 实现一个HashMap
- 环形链表
- 寻找重复数
- 缺失的第一个正数
- 螺旋矩阵
- 字符串相乘
- 分发糖果
直接刷题链接直达
- LRU Cache
- 头尾两个伪节点(避免判断) + 双向链表
- 146. LRU 缓存
- 买卖股票的最佳时机系列
- 121. 买卖股票的最佳时机
- 实现一个HashMap
- 要求:1. 定义内部存储结构; 2.实现 insert(key, value) 和 remove(key);3.不能使用任何Java集合框架。
- 706. 设计哈希映射
- 求给定区间内子区间的最大值(区间内最小值*区间元素相加)
- 要求时间复杂度O(n)
- 原题
- 斐波那契数列的尾递归实现
- 面试官原意是斐波那契的递归实现如何优化
- 尾递归就是把当前的运算结果(或路径)放在参数里传给下层函数
- 递归与尾递归总结
- 1到10000有多少个数字7
- 答案 :4000
- 腾讯面试题-0到9999这1万个数中有多少个数字7
- 给定精度(如小数点后10位),写一个函数求根号2的具体值
- 牛顿法,详见 如何通俗易懂地讲解牛顿迭代法求开方?数值分析?
- 69. x 的平方根
- 给定一个乱序数组[0,100],替换其中一个数,找出这个被替换的数
- 类似 142. 环形链表 II 思路,重复数字会形成环,双指针寻找
- 287. 寻找重复数
- 缺失的第一个正数
- 41. 缺失的第一个正数
- 顺时针打印矩阵(星环)
- 54. 螺旋矩阵
- 实现一个int转中文表示的函数,同时设计测试用例
- 定界数据范围 + 梳理演变规则(以“万”为节,化繁为简,以及“零”如何处理)
- 数字(int型范围内正整数)和中文的相互转换
- 100盏灯问题
- 面试题—100盏灯问题
- 给定一个数组,一个闭区间[n,m],给出该数组中所有最大值在闭区间中的连续子数组数目
- 要求时间复杂度O(n)
- 如 [2,1,4,3],[2,3],有[2],[2,1],[3],返回3
- 字符串相乘
- 43. 字符串相乘
- 用Java实现一个String转Map(Map<String,Object>)的函数,不能使用String的split和第三方库
- 整数中1出现的次数(从1到n中1出现的次数)
- 233. 数字 1 的个数
- 单词接龙
- 广度优先 --> 队列 + 暴力搜索(遍历过的单词删除),视频讲解见 花花酱 LeetCode 127. Word Ladder - 刷题找工作 EP71
- 127. 单词接龙
- 分数到小数
- 将除法过程代码化
- 166. 分数到小数
- 只出现一次的数字
- 136. 只出现一次的数字
- 分糖果
- 从左至右扫一遍,再从右至左扫一遍,取两遍中的最大值
- 135. 分发糖果
- 实现一个命令行逆波兰计算器
- CommandLineRPN
- Largest M-aligned Subset
- Microsoft | OA 2020 | Largest M-aligned Subset
LRU Cache
请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity)
以 正整数 作为容量 capacity
初始化 LRU 缓存
int get(int key)
如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
void put(int key, int value)
如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。
函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。
class LRUCache {private final int capacity;// 双向链表 put 操作 会把数据放表尾-》最近最久未使用在表头(remove去掉表头)private final LinkedHashMap<Integer, Integer> data;public LRUCache(int capacity) {this.capacity = capacity;this.data = new LinkedHashMap<>(capacity);}public int get(int key) {// 这个key存在 =》 删除,放表尾if (data.containsKey(key)) {Integer value = data.remove(key);data.put(key, value);return value;}return -1;}public void put(int key, int value) {if (data.containsKey(key)) {data.remove(key);data.put(key, value);return;}if (data.size() == capacity) {// 删除表头元素data.remove(data.keySet().iterator().next());}data.put(key, value);}
}
补充:
class LRUCache {private static class Node {int key, value;Node prev, next;Node(int k, int v) {key = k;value = v;}}private final int capacity;private final Node dummy = new Node(0, 0); // 哨兵节点private final Map<Integer, Node> keyToNode = new HashMap<>();public LRUCache(int capacity) {this.capacity = capacity;dummy.prev = dummy;dummy.next = dummy;}public int get(int key) {Node node = getNode(key); // getNode 会把对应节点移到链表头部return node != null ? node.value : -1;}public void put(int key, int value) {Node node = getNode(key);if (node != null) { // 有这本书node.value = value; // 更新 valuereturn;}node = new Node(key, value); // 新书keyToNode.put(key, node);pushFront(node); // 放在最上面if (keyToNode.size() > capacity) { // 书太多了Node backNode = dummy.prev;keyToNode.remove(backNode.key);remove(backNode); // 去掉最后一本书}}// 获取 key 对应的节点,同时把该节点移到链表头部private Node getNode(int key) {if (!keyToNode.containsKey(key)) { // 没有这本书return null;}Node node = keyToNode.get(key); // 有这本书remove(node); // 把这本书抽出来pushFront(node); // 放在最上面return node;}// 删除一个节点(抽出一本书)private void remove(Node x) {x.prev.next = x.next;x.next.prev = x.prev;}// 在链表头添加一个节点(把一本书放在最上面)private void pushFront(Node x) {x.prev = dummy;x.next = dummy.next;x.prev.next = x;x.next.prev = x;}
}
买卖股票的最佳时机系列
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
class Solution {public int maxProfit(int[] prices) {int mp = Integer.MAX_VALUE;int max = Integer.MIN_VALUE;for (int p:prices) {if (p < mp) {mp = p;}max = Math.max(max, p - mp);}return max;}
}
实现一个HashMap
public class MyHashMap {int capacity = 16;class Node {int key;int value;Node next;public Node() {this.next = null;}public Node(int key, int value) {this.key = key;this.value = value;this.next = null;}}Node[] bucket;public MyHashMap() {this.bucket = new Node[capacity];}public void put(int key, int value) {int i = key % capacity;if (bucket[i] == null) {bucket[i] = new Node(key, value);return;}Node temp = bucket[i];if (temp.key == key) {temp.value = value;return;}while (temp.next != null) {if (temp.next.key == key) {temp.next.value = value; // fix herereturn;}temp = temp.next;}temp.next = new Node(key, value); // insert at end}public int get(int key) {int i = key % capacity;Node temp = bucket[i];while (temp != null) {if (temp.key == key) {return temp.value;}temp = temp.next;}return -1; // not found}public void remove(int key) {int i = key % capacity;Node temp = bucket[i];if (temp == null) return;if (temp.key == key) {bucket[i] = temp.next;return;}while (temp.next != null) {if (temp.next.key == key) {temp.next = temp.next.next;return;}temp = temp.next;}}
}
环形链表
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
不允许修改 链表。
思路:
- 快慢指针 判断是否有环。
- 有环,快指针=第一个节点,然后两个指针向下遍历,相遇的点就是开始入环的第一个节点。
public class Solution {public ListNode detectCycle(ListNode head) {if (head == null || head.next == null) return null;ListNode fast = head;ListNode slow = head;// 快慢指针:判断是否有环while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;if (fast == slow) {break;}}// 没有环if (fast == null || fast.next == null) {return null;}// 有环:重新让 fast 从头走,和 slow 一起一步一步走,相遇点就是环的入口fast = head;while (fast != slow) {fast = fast.next;slow = slow.next;}return slow;}
}
寻找重复数
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。
假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。
你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。
将数组视为链表,nums[i] 表示“指针”,指向 nums[nums[i]]。
💡 思路:
把 nums 看成链表,数组下标是节点编号,值是指针指向的下一个节点;
因为有重复值,所以一定有“环”;
问题转化为:找这个链表的“环入口”,这就是“重复的数”。
public class Solution {public int findDuplicate(int[] nums) {// 初始化快慢指针int slow = nums[0];int fast = nums[0];// 第一步:快慢指针找相遇点(在环中)do {slow = nums[slow];fast = nums[nums[fast]];} while (slow != fast);// 第二步:找环的入口(即重复的数字)fast = nums[0];while (fast != slow) {fast = nums[fast];slow = nums[slow];}return slow; // or fast}
}
缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。
思想:把每个数字放到它“该去的位置”,然后再检查哪个位置缺少那个数字。
class Solution {public int firstMissingPositive(int[] nums) {// 把每个数字放到它“该去的位置”,然后再检查哪个位置缺少那个数字。int i = 0;while (i < nums.length) {if (nums[i] != i+1 && nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] != nums[i]) {int temp = nums[nums[i]-1];nums[nums[i]-1] = nums[i];nums[i] = temp; }else {i++;}}for (int k = 0; k < nums.length; k++) {if (nums[k] != k + 1) {return k+1;}}return nums.length + 1;}
}
螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> ans = new ArrayList<>();int m = matrix.length;int n = matrix[0].length;// 边界int l = 0, r = n - 1, t = 0, b = m - 1;while (l <= r && t <= m) {// 左 到 右for (int i = l; i <= r; i++) {ans.add(matrix[t][i]);}// 边界判断if (++t > b) break;// 上 到 下for (int i = t; i <= b; i++) {ans.add(matrix[i][r]);}if (--r < l) break;// 右 到 左for (int i = r; i >= l; i--) {ans.add(matrix[b][i]);}if (--b < t) break;// 从 下 到 上for (int i = b; i >= t;i--) {ans.add(matrix[i][l]);}if (++l > r) break;}return ans;}}
字符串相乘
给定两个以字符串形式表示的非负整数 num1
和 num2
,返回 num1
和 num2
的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger
库或直接将输入转换为整数。
class Solution {public String multiply(String num1, String num2) {if ("0".equals(num1) || "0".equals(num2)) return "0";int m = num1.length();int n = num2.length();int[] res = new int[m + n]; // 最多 m+n 位for (int i = m - 1; i >= 0; i--) {int a = num1.charAt(i) - '0';for (int j = n-1; j >= 0; j--) {int b = num2.charAt(j) - '0';int sum = res[i+j+1] + a*b;res[i+j+1] = sum % 10;res[i+j] += sum/10; // +=}}// 转换成字符串,去掉前导0StringBuilder sb = new StringBuilder();for (int num : res) {if (sb.length() == 0 && num == 0) continue;sb.append(num);}return sb.toString();}
}
分发糖果
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。
你需要按照以下要求,给这些孩子分发糖果:
- 每个孩子至少分配到 1 个糖果。
- 相邻两个孩子评分更高的孩子会获得更多的糖果。
请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
class Solution {public int candy(int[] ratings) {int n = ratings.length;int[] candys = new int[n];// 每个孩子至少分配到 1 个糖果Arrays.fill(candys, 1);// 从 左 到 右 遍历:相邻两个孩子评分更高的孩子会获得更多的糖果for (int i = 1; i < n; i++) {if (ratings[i] > ratings[i-1]) {candys[i] = candys[i-1]+1;}}// 从 右 到 左 遍历:相邻两个孩子评分更高的孩子会获得更多的糖果for (int i = n-2; i >= 0; i--) {if (ratings[i] > ratings[i+1]) {candys[i] = Math.max(candys[i], candys[i+1]+1);}}int sum = 0;for (int i = 0; i < n; i++) {sum += candys[i];}return sum;}
}
相关文章:
2025高频面试算法总结篇【其他】
文章目录 直接刷题链接直达LRU Cache买卖股票的最佳时机系列实现一个HashMap环形链表寻找重复数缺失的第一个正数螺旋矩阵字符串相乘分发糖果 直接刷题链接直达 LRU Cache 头尾两个伪节点(避免判断) 双向链表146. LRU 缓存 买卖股票的最佳时机系列 121…...
vue项目中使用antvX6(可拖拽,vue3)
参考 先知demons 这位大佬的这篇文章:https://blog.csdn.net/wzy_PROTEIN/article/details/136305034?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-136305034-blog-136032209.235v43pc_blog_bottom_relevance_ba…...
文档处理控件Aspose.Words 教程:在 Word 中删除空白页完整指南
Word 文档中的空白页总是令人烦恼。如果您想从 Word 文档中删除空白页,以获得更清晰的演示文稿或整理文件,那么您来对地方了。本指南涵盖了使用 Aspose.Words编码解决方案和在 Microsoft Word 中手动删除方案,让您可以灵活地选择最适合自己的…...
自动驾驶最新算法进展
自动驾驶技术的算法进展迅速,涵盖感知、预测、规划、端到端学习等多个领域。以下是2023年至2024年的关键进展及实例: 1. 感知与融合 BEVTransformer的进化:特斯拉的Occupancy Networks升级至支持动态场景建模,结合NeRF技术…...
OpenCV训练题
一、创建一个 PyQt 应用程序,该应用程序能够: 使用 OpenCV 加载一张图像。在 PyQt 的窗口中显示这张图像。提供四个按钮(QPushButton): 一个用于将图像转换为灰度图一个用于将图像恢复为原始彩色图一个用于将图像进行…...
34、Spark实现读取XLS文件
需求背景: 有一些xls大文件数据。使用spark-excel(spark-excel)来读取时,文件太大会oom;工具提供的流式读取参数:maxRowsInMemory 也只支持xlsx类型文件。搜索了poi流式读取xls的方案,HSSFEvent…...
为什么RPN生成的候选框,要使用rcnn来进行分类和回归操作?
一句大白话总结:RPN是广撒网捕鱼,RCNN是细化鱼的分类和具体尺寸 在目标检测任务中,RPN(区域提议网络) 生成的候选框需要经过 RCNN(如 Fast R-CNN、Faster R-CNN) 进行分类和回归,这…...
固定总价合同工程范围变更,如果规避风险
一、合同签订阶段 工程范围的锁定 清单式列举 兜底条款:在合同附件中以 “正负零以上主体结构”“XX 型号设备采够” 等具体描述界定承包范围,同时约定 “超出本附件描述的工程内容视为变更”111。 设计深度要求:对于 EPC 项目,需…...
windows传文件给mac, linux或者其他windows
如果你想把你本地windows的文件传递给mac, linux或者其他windows电脑, 你会使用什么方法呢? 方法一 经常写python的朋友, 肯定会说, 我会用 SimpleHTTPServer python -m SimpleHTTPServer 8000生成一个超链接, 然后在其他机器上直接下载这个链接. 方法二 scp命令 Use SC…...
AI音乐解决方案:1分钟可切换suno、udio、luno、kuka等多种模型,suno风控秒切换 | AI Music API
你有没有觉得,suno风控来了,就要停服了? 你有没有觉得,对接多种音乐模型,让你很疲乏? 你有没有觉得,音乐模型,中文咬字不清楚,让你很苦恼? 别怕࿰…...
LeetCode 热题100题解(Java版本)
一、哈希 1、两数之和 https://leetcode.cn/problems/two-sum/?envType=study-plan-v2&envId=top-100-liked使用HashMap,遍历数组,判断当前元素的“补数”是否存在,如果存在直接返回结果,否则在Map中记录当前元素及其下标。 时间复杂度 O(n) 空间复杂度 O(n) class …...
突破传统!SEARCH-R1如何让LLM与搜索引擎协同推理?
大语言模型(LLMs)虽强大,但在复杂推理和获取最新信息方面存在局限。本文介绍的SEARCH-R1框架,通过强化学习让LLMs能自主与搜索引擎交互,在多个问答数据集上性能大幅提升。想知道它是如何做到的吗?快来一探究…...
C语言复习笔记--字符函数和字符串函数(下)
在上篇我们了解了部分字符函数及字符串函数,下面我们来看剩下的字符串函数. strstr 的使用和模拟实现 老规矩,我们先了解一下strstr这个函数,下面看下这个函数的函数原型. char * strstr ( const char * str1, const char * str2); 如果没找到就返回NULL指针. 下面我们看下它的…...
Git SSH 密钥多个 Git 来源
1. 生成 SSH 密钥 ssh-keygen -t rsa -b 4096 -C "997959066qq.com" 2. 输入指定路径 3. 增加 config文件在.ssh文件下 # GitHub 主账户 Host github.dis.comHostName github.disney.comUser gitIdentityFile ~/.ssh/id_rsa# 其他 Git 服务器 Host github.comHost…...
华为盒式交换机堆叠配置
1. 堆叠线缆连线图(如下图) 2. 配置Swtich1: [HUAWEI] sysname Switch1 [Switch1] interface stack-port 0/1 [Switch1-stack-port0/1] port interface xgigabitethernet 0/0/3 xgigabitethernet 0/0/4 enable Warning: Enabling stack function may cause configuration l…...
map和set的使用
序列式容器和关联式容器 c标准库为我们提供了多种容器类型,可以大体分为两类:序列式容器和关联式容器。 序列式容器按照线性顺序储存数据,元素的位置取决与插入的时间和地点。关联式容器基于键值对存储元素,提供高效的键查找能力…...
VMware制作Windows虚拟机模板注意点
1 、删除右下角的热删除 这个是必须的!虚拟机的高级参照中添加devices.hotplug “FALSE”,关闭USB设备热插拔,防止用户把虚拟桌面的网卡删除掉。 2、移除CD/DVD驱动器 这个建议!移除CD/DVD驱动器,此项操作…...
公有云攻防5(云函数)
Serverless概述 无服务器(Serverless)不是表示没有服务器,而是表示当您在使用Serverless时,您无需关心底层的资源,也无需登录服务器和优化服务器,只需关注最核心的代码片段,即可跳过复杂的、繁琐的基本工作。 Serverless 拥有近乎无限的扩容能力,空闲时,不运行任何资…...
【计算机网络】第五章 局域网技术
以太网技术 以太网的诞生 网络适配器和MAC地址 单播MAC地址 广播MAC地址 CSMA/CD协议 CSMA/CD协议的基本原理 共享式以太网---广播特性 MA多址接入 CS载波监听---先听后说 CD碰撞检测---边听边说 载波监听检测到总线空闲,但总线并不一定空闲。 使用CSMA/CD协议的…...
傲来云分享,负载均衡:提升网站性能与稳定性
在网站或应用的流量不断增加时,单台服务器往往无法承载过多的并发请求,导致性能下降和响应延迟。负载均衡技术正是为了解决这个问题,它可以将流量分发到多台服务器,从而提高系统的可扩展性、处理能力和可靠性。今天,我…...
Python基础总结(九)之推导式
文章目录 一、列表推导式1.1 列表推导式的格式1.2 列表推导式的注意事项1.3 列表推导式示例 二、 字典推导式2.1 字典推导式格式2.2 字典推导式注意事项2.3 字典推导式示例 三、 元组推导式3.1 元组推导式格式3.3 元组推导式示例 Python中的推导式有列表推导式,字典…...
程序员学商务英文之Terms of Payment Packing
Dia-3: Packing 1 包装-1 1. I’m here to improve my communication skill of English. 我来这里是为了提升我的英文沟通技能。 2. What a co-incidence! Fancy meeting you here. 这么巧!真没想到在这见到你。 3. Some birds aren’t meant to be caged…...
学生管理系统项目中的相关问题总结
目录 1. 项目中哪里体现出了封装性及其好处? 2. 项目中的setter/getter模式与封装性 什么是setter/getter?有什么用?怎么自动生成? 3.项目中某些类的toString()方法 4. 项目中几个常用方法解析 5. 项目中的面向对象设计 1…...
AI驱动下的企业学习:人力资源视角下的范式重构与价值觉醒
一、传统企业学习体系的系统性失效 当企业学习市场规模突破3600亿美元,人均年投入达1400美元的历史高位时,这场看似繁荣的图景背后却暗藏结构性危机。正如一份2024年研究报告所指出的,66%的企业仍倾向于通过外部招聘而非内部培养获取AI人才&…...
工厂模式:简单工厂模式
工厂模式 简单工厂模式:子类对象较多,则引入工厂类来创建 简单工厂模式 流程: 实例: 某电视机厂为各个品牌代工生产电视机,可以使用简单工厂的模式来实现 #include <iostream> #include <vector> using…...
Java并发编程-线程池
Java并发编程-线程池 线程池运行原理线程池生命周期线程池的核心参数线程池的阻塞队列线程池的拒绝策略线程池的种类newFixedThreadPoolnewSingleThreadExecutornewCachedThreadPoolnewScheduledThreadPool 创建线程池jdk的Executors(不建议,会导致OOM)jdk的ThreadP…...
ios17 音频加载失败问题
现象: 项目中有2个MP3 格式的音频,在iOS17 下 一个可以播,一个不能播,但是在浏览器可 正常播放 原因: 不能播的mp3是因为其编码格式为mpeg-4 AAC 编码格式 正常的mpeg audio 是可以播放的 解决&am…...
HarmonyOS:Navigation实现导航之页面设置和路由操作
导读 设置标题栏模式设置菜单栏设置工具栏路由操作页面跳转页面返回页面替换页面删除移动页面参数获取路由拦截 子页面页面显示类型页面生命周期页面监听和查询 页面转场关闭转场自定义转场共享元素转场 跨包动态路由系统路由表自定义路由表 示例代码 Navigation组件适用于模块…...
ADB -> pull指令拉取手机文件到电脑上
ADB Pull命令 在Android开发中,ADB的pull命令可以帮助我们将文件从设备拷贝到电脑上。 基本语法 adb pull <设备文件路径> [本地目标路径]<设备文件路径>:必需参数,指定要拉取的设备上的文件或文件夹[本地目标路径]࿱…...
Android Studio打开xml布局文件内存会快速增加如何设置
打开xml布局文件内存快速增加的原因是预览设置问题,直接在file-setting-editor-ui tools-editor view mode-resource: 选择code 就好了...
Spring Boot集成Keycloak
前言 本文参考A Quick Guide to Using Keycloak with Spring Boot,整理实战中遇到的问题。 Docker 安装 Keycloak 下载镜像 quay下载镜像 docker pull quay.io/keycloak/keycloak 失败的话,可再次尝试。 启动keycloak docker run -p 6060:8080 -…...
实验七 shell程序设计
实验七 shell程序设计 一、实验目的 理解shell的工作原理,学会编写shell脚本。 二、实验内容 1.编写不同功能的脚本程序。 2.利用chmod修改文件权限。 3.掌握脚本文件执行的方法。 三、主要实验步骤 1.创建一个名为zs_lab7的目录,下边实验步骤都在…...
FlaskRestfulAPI接口的初步认识
FlaskRestfulAPI 介绍 记录学习 Flask Restful API 开发的过程 项目来源:【Flask Restful API教程-01.Restful API介绍】 我的代码仓库:https://gitee.com/giteechaozhi/flask-restful-api.git 后端API接口实现功能:数据库访问控制…...
自定义错误码的必要性
为什么要使用错误码,直接返回一个错误信息不好么? 下面介绍一下,在程序开发中使用错误码的必要性~ 便于排查问题 想象你开了一家奶茶店,顾客下单后可能出现各种问题: 没珍珠了(错误码:50…...
快手砍掉本地生活的门槛
一场本地商家的效率革命。 作者|景行 编辑|杨舟 “两斤鸡翅根七块九,两盒蓝莓九块钱,两公斤卫生纸十四块九一提。” 这是朝阳佳惠超市,在快手一则普通的短视频内容。 佳惠超市在辽宁省朝阳市有22家分店,打开佳惠超市的相关快手…...
Python+Word实现周报自动化的完整流程
一、技术方案概述 自动化报表解决方案基于以下技术组件: Python 作为核心编程语言python-docx 库用于处理 Word 文档pandas 库用于数据处理和分析matplotlib 或 plotly 库用于数据可视化Word 模版作为报表的基础格式 这种方案的优势在于:保留了 Word 文…...
PCIE Spec ---Base Address Registers
7.5.1.2.1 Base Address Registers (Offset 10h - 24h) 在 boot 到操作系统之前,系统软件需要生产一个内存映射的 address map ,用于告诉系统有多少内存资源,以及相应功能需要的内存空间,所以在设备的 PCI 内存空间中就有了这个 …...
list的学习
list的介绍 list文档的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一…...
numpy、pandas内存优化操作整理
前言 python作为一款不怎么关注数据类型的语言,不同类型的数据可以往同一个变量中放置 这也就直接导致,作为熟悉C这种一个变量只有一个类型的程序员来说,在解读python程序时,想搞清楚变量中到底存的是什么数据类型的时候时常很头…...
【OSG学习笔记】Day 5: 坐标系与变换节点(Transform)
在前面的学习中,我们对 OpenSceneGraph(OSG)有了基础的认识。 今天,我们将深入探讨 OSG 中的坐标系和变换节点(Transform),并通过平移、旋转、缩放模型以及父子节点层级变换的实战操作,加深对这些概念的理解。 坐标系 1. 基础坐标系 在 OSG 里,使用的是右手坐标系…...
使用 Logstash 迁移 MongoDB 数据到 Easysearch
大家好!在前面的文章中,我们已经详细介绍了如何通过 Logstash 和 Canal 工具实现 MySQL 数据向 Easysearch 的迁移。如果您正在使用 MongoDB 作为数据存储,并希望将其数据迁移到 Easysearch 中,这篇指南或许能为您提供一些帮助。 …...
在线查看【免费】vsd, vsdx/wmf, emf /psd, eps/pdf ,ofd, rtf/xmind/bpmn/eml/epub文件格式网
可以免费在线查看 .docx/wps/Office/wmf/ psd/ psd/eml/epub/dwg, dxf/ txt/zip, rar/ jpg/mp3 m.gszh.xyz m.gszh.xyz 免费支持以下格式文件在线查看类型 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages 等 Office 办…...
富诺健康旗下运动营养品牌力爆(LIPOW):以冠军精神定义运动营养新时代
在全民健身热潮持续升温的今天,运动已不仅是竞技场上的较量,更是普通人突破自我的健康生活方式。《全民健身计划(2021-2025年)》中指出,“十三五”时期,全民健身国家战略深入实施,全民健身公共服…...
自定义多头注意力模型:从代码实现到训练优化
引言 在自然语言处理和序列生成任务中,自注意力机制(Self-Attention)是提升模型性能的关键技术。本文将通过一个自定义的PyTorch模型实现,展示如何构建一个结合多头注意力与前馈网络的序列生成模型(如文本或字符生成)。该模型通过创新的 MaxStateSuper 模块实现动态特征…...
vue部署到nginx服务器 启用gzip
要在使用Vue.js构建的应用程序上启用Nginx的Gzip压缩,你可以通过配置Nginx来实现这一功能,这样可以显著减少传输到客户端的数据量,从而加快页面加载速度。以下是如何配置Nginx以启用Gzip压缩的步骤: 1. 确认你的Vue.js应用已经构…...
Node.js和js到底什么关系
Node.js 和 JavaScript(JS)是紧密关联但本质不同的技术,它们的关系可以从以下几个关键维度进行解析: 1. 定义与角色 JavaScript: 一种高级、解释型的编程语言,最初设计用于浏览器端,负责网页的…...
如何开发一套TRS交易系统:架构设计、核心功能与风险控制
TRS(总收益互换)作为场外衍生品的重要工具,近年来在跨境投资、杠杆交易和风险对冲领域备受关注。2021年Archegos资本因TRS交易爆仓导致百亿美元级市场震荡,凸显了TRS系统设计的关键性。本文将从技术实现角度,解析TRS交…...
基于SpringBoot的高校体育馆场地预约管理系统-项目分享
基于SpringBoot的高校体育馆场地预约管理系统-项目分享 项目介绍项目摘要目录总体功能图用户实体图赛事实体图项目预览用户个人中心医生信息管理用户管理场地信息管理登录 最后 项目介绍 使用者:管理员 开发技术:MySQLJavaSpringBootVue 项目摘要 随着…...
MMIO、IOMAP 和 IOMMU 总结
MMIO、IOMAP 和 IOMMU 全面解析 📌 本文将深入浅出地梳理 Linux 驱动开发中常见的三大术语:MMIO、iomap、IOMMU。它们看似相似,其实职责完全不同,是理解 SoC 系统架构、DMA 安全性和驱动开发的基础。 一、MMIO(Memory-…...
Vscode开发STM32标准库
Vscode开发STM32 文章目录 引用一、文档介绍二、实际操作(基于标准库)总结 使用VScode开发STM32(keil),基础江科大标准库的串口接收和发送。 引用 VSCodeEIDE开发STM32,支持标准库、HAL库、LL库,可以在VSCode里进行调…...