当前位置: 首页 > news >正文

2025高频面试算法总结篇【排序】

文章目录

  • 直接刷题链接直达
  • 把数组排成最小的数
  • 删除有序数组中的重复项
  • 求两个排序数组的中位数
  • 求一个循环递增数组的最小值
  • 数组中的逆序对
  • 如何找到一个无序数组的中位数
  • 链表排序
  • 从一大段文本中找出TOP K 的高频词汇


直接刷题链接直达

  • 把一个数组排成最大的数
    • 剑指 Offer 45. 把数组排成最小的数
    • 面试官说需要 通过 补位 思想(普通的compare再sort并不满意,但补位思想似乎不适用于有重复元素的情况)
  • 如何给一个很大的无序数组去重
    • 26. 删除排序数组中的重复项(给排序数组去重)
  • 求两个排序数组的中位数
    • 要求时间复杂度 O(log(m+n))
    • 二分查找,递归求整个数组中第K大的元素,完整代码需要仔细考虑多种边界条件
    • 4.寻找两个有序数组的中位数
  • 求一个循环递增数组的最小值
    • 153. 寻找旋转排序数组中的最小值 (无重复元素,二分,总有一半有序,注意边界)
    • 154. 寻找旋转排序数组中的最小值 II (有重复元素,需要解除相等时的死循环)
  • 数组中的逆序对
    • 归并排序 && 递归的应用
    • 引入辅助数组临时存放排序好的数据
    • 归并时指向两个指针末尾,逐次向前并统计
    • 面试题51. 数组中的逆序对
  • 如何找到一个无序数组的中位数
    • 295. 数据流的中位数 (建立两个堆,最大堆&最小堆,复杂度分析)
    • 找出一个无序数组的中位数 (快排,缩小Partition区域 / 取一半元素建堆)
  • 链表排序
    • 需要 nlog(n) 时间复杂度和常数级空间复杂度
    • 归并排序的应用(Bottom Up)
    • 找到中点,断开链表(通过快慢两个指针)
    • 交替双指针合并
    • 148. 排序链表
  • 手写主流排序算法 & 各种算法的复杂度/稳定性分析
    • 常见问题
      • 手写快排 / 堆排
      • 快排的复杂度分析(最好/最坏/平均)
      • 堆排中建堆的时间复杂度分析 --> O(n)
        • 堆排序中建堆过程时间复杂度O(n)怎么来的?
        • 为什么建堆的时间复杂度是O(n)?
      • 归并排序的 Top-Down & Bottom-up 策略
      • 不同排序的稳定性分析
      • 冒泡排序的优化策略(华为)
        • 设置flag位,一轮未交换数据即已完成排序,提前结束
        • 记住本轮最后一次交换发生的位置lastExchange,下次内层循环到此终止即可
    • 排序算法稳定性
    • 排序算法可视化
    • 快排 Wiki / 堆排 Wiki / 归并排序 Wiki
    • 堆排序(Heapsort) (特别好的讲解)
    • 冒泡排序算法及其两种优化
  • (Top K 问题)给定一个无符号,包含10亿个数的数组,如何取出前100大的数
    • 答题思路
      • 首先询问资源 --> 内存 / 核数 / 单机or多机,如可用多机 --> MapReduce思想
      • 堆排 O(nlogk),可以单机处理海量数据(在内存受限情况下),如果k较小,趋近于 O(n)
        • 建立一个容量为k的大/小顶堆
        • n个元素逐一比较,O(logk) 完成删除和插入操作
      • 全局排序, O(nlogn) (数据量较小时才可行)
      • 冒泡(k个),O(kn)
      • 快排划分 O(n), 每次递归处理一侧的数据,理论上可以理解为每次折半,缺点 --> 存在内存不够的问题,因为需要一次读入所有数据
    • 算法必学:经典的 Top K 问题(基本思路篇)
    • 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) (各种资源场景分析,面试前可参考)
    • 最小的K个数(代码实现,首选堆排)
  • Java自带的 sort() 方法是如何实现的
    • Array.sort() / Collections.sort()
    • DualPivotQuicksort(双轴快速排序)
    • Arrays.sort和Collections.sort实现原理解析
    • Collections.sort()和Arrays.sort()排序算法选择
  • 写一个快速划分数据集的算法,要求测试集用新数据,训练集用老数据
    • 数据格式为 Record(id, timestamp)
    • 函数签名为 division(ArrayList dataset, double ratio), ratio为(0,1)的划分比例
    • 要求复杂度为O(n)
  • 从一大段文本中找出TOP K 的高频词汇
    • System Design Interview - Top K Problem (Heavy Hitters) (系统设计角度思考本题,如何权衡性能和效率,较为高阶)
    • 347. 前K 个高频元素 (数字频次代码实现,建堆,时间复杂度为nlog(k))
    • 692. 前K个高频单词 (词汇频次代码实现,思路一致)

把数组排成最小的数

题目:闯关游戏需要破解一组密码,闯关组给出的有关密码的线索是:

  • 一个拥有密码所有元素的非负整数数组 password
  • 密码是 password 中所有元素拼接后得到的最小的一个数
class Solution {public String crackPassword(int[] password) {String[] strs = new String[password.length];for (int i=0; i < password.length; i++) {strs[i] = password[i] + "";}Arrays.sort(strs, (a, b) -> (a + b).compareTo(b + a));StringBuilder sb = new StringBuilder();for (int i=0; i < password.length; i++) {sb.append(strs[i]);}return sb.isEmpty() ? "0":sb.toString();}
}

删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。
class Solution {public int removeDuplicates(int[] nums) {if (nums.length == 0) return 0;int k = 0;for (int i = 1; i < nums.length; i++) {if (nums[i] != nums[k]) {nums[++k] = nums[i];}}return k+1;}
}

求两个排序数组的中位数

题目:
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

  • 算法的时间复杂度应该为 O(log (m+n)) 。

解法:
这道题的关键是 二分查找+数组切割,核心思路是 在较短数组上二分查找,然后通过数学推导找到合适的中位数。

  • 设定两个数组 nums1nums2,保证 nums1 总是最短的数组(这样可以减少二分查找的搜索范围)。

  • 对短数组进行二分查找,设 nums1 的长度为 mnums2 的长度为 n,则我们希望找到一个分割点 i(在 nums1 中),同时 j = (m + n + 1) / 2 - i(在 nums2 中)。

  • 确保分割点左侧的所有元素 ≤ 右侧的所有元素

  • nums1[i-1] <= nums2[j]

  • nums2[j-1] <= nums1[i]

  • 确定中位数

  • 如果 m + n奇数,中位数是左半部分的最大值 max(nums1[i-1], nums2[j-1])

  • 如果 m + n偶数,中位数是 (max(nums1[i-1], nums2[j-1]) + min(nums1[i], nums2[j])) / 2

public double findMedianSortedArrays(int[] nums1, int[] nums2) {// 保证 nums1 是较短的数组if (nums1.length > nums2.length) {return findMedianSortedArrays(nums2, nums1);}int m = nums1.length, n = nums2.length;int left = 0, right = m;int medianPos = (m + n + 1) / 2; // 中位数的位置while (left <= right) {int i = left + (right - left) / 2;  // nums1的分割点int j = medianPos - i;             // nums2的分割点int nums1LeftMax = (i == 0) ? Integer.MIN_VALUE : nums1[i - 1];int nums1RightMin = (i == m) ? Integer.MAX_VALUE : nums1[i];int nums2LeftMax = (j == 0) ? Integer.MIN_VALUE : nums2[j - 1];int nums2RightMin = (j == n) ? Integer.MAX_VALUE : nums2[j];if (nums1LeftMax <= nums2RightMin && nums2LeftMax <= nums1RightMin) {// 找到合适的分割点if ((m + n) % 2 == 0) {return (Math.max(nums1LeftMax, nums2LeftMax) + Math.min(nums1RightMin, nums2RightMin)) / 2.0;} else {return Math.max(nums1LeftMax, nums2LeftMax);}} else if (nums1LeftMax > nums2RightMin) {// 需要向左移动right = i - 1;} else {// 需要向右移动left = i + 1;}}throw new IllegalArgumentException("输入的数组不符合条件");
}

求一个循环递增数组的最小值

题目: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:

  • 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]
  • 若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]
class Solution {public int findMin(int[] nums) {if (nums == null || nums.length == 0) {throw new IllegalArgumentException("数组不能为空");}int left = 0, right = nums.length - 1;while (left < right) { // 这里是 left < right,而不是 left <= rightint mid = left + (right - left) / 2;if (nums[mid] > nums[right]) {  // 最小值一定在 mid 右侧left = mid + 1;} else {// 最小值可能在 mid 或左侧right = mid;}}return nums[left]; // 最终 left == right,返回最小值}
}

题目 : 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:

  • 若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]
  • 若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]
class Solution {public int findMin(int[] nums) {if (nums == null || nums.length == 0) {return 0;}int left = 0, right = nums.length - 1;while (left < right) {int mid = left + (right - left) / 2;if (nums[mid] > nums[right]) {left = mid + 1;}else if (nums[mid] < nums[right]) {right = mid;}else {// nums[mid] == nums[right]right--;}}return nums[left];}
}

数组中的逆序对

题目 :在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录 record,返回其中存在的「交易逆序对」总数。

class Solution {public int reversePairs(int[] record) {if (record == null || record.length < 2) return 0;mergeSort(record, 0, record.length - 1);return count;}public void mergeSort(int[] record, int left, int right) {if (left >= right) return;int mid = left + (right-left)/2;mergeSort(record, left, mid);mergeSort(record, mid+1, right);// 合并merge(record, left, mid, right);}int count = 0;public void merge(int[] record, int left, int mid, int right) {int[] temp = new int[right - left +1];int i = left, j = mid+1;int k = 0;while (i <= mid && j <= right) {if (record[i] <= record[j]) {temp[k++] = record[i++];}else {//当左边数组的大与右边数组的元素时,就对当前元素以及后面的元素的个数进行统计,//此时这个数就是,逆序数//定义一个计数器,记下每次合并中存在的逆序数。count += mid - i + 1;temp[k++] = record[j++];}}while (i <= mid) temp[k++] = record[i++];while (j <= right) temp[k++] = record[j++];//将新数组中的元素,覆盖nums旧数组中的元素。//此时数组的元素已经是有序的for(int t =0; t< temp.length;t++){record[left+t] = temp[t];}}
}

如何找到一个无序数组的中位数

中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。

例如 arr = [2,3,4] 的中位数是 3 。
例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。
实现 MedianFinder 类:

MedianFinder() 初始化 MedianFinder 对象。

void addNum(int num) 将数据流中的整数 num 添加到数据结构中。

double findMedian() 返回到目前为止所有元素的中位数。与实际答案相差 10-5 以内的答案将被接受。

class MedianFinder {PriorityQueue<Integer> left;PriorityQueue<Integer> right;public MedianFinder() {left = new PriorityQueue<>((a,b)->b-a); // 最大堆right = new PriorityQueue<>(); // 最小堆}public void addNum(int num) {if (left.size() == right.size()) {right.offer(num);left.offer(right.poll());} else {left.offer(num);right.offer(left.poll());}}public double findMedian() {if (left.size() > right.size()) {return left.peek();}return (left.peek() + right.peek()) / 2.0;}
}

链表排序

class Solution {public ListNode sortList(ListNode head) {if (head == null || head.next == null) return head;// 归并排序ListNode slow = head;ListNode fast = head.next;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}ListNode newHead = slow.next;slow.next = null;ListNode left = sortList(head);ListNode right = sortList(newHead);ListNode dm = new ListNode(0);ListNode curr = dm;while (left != null && right != null) {if (left.val < right.val) {curr.next = left;left = left.next;curr = curr.next; }else {curr.next = right;right = right.next;curr = curr.next;}}if (left != null) {curr.next = left;}if (right != null) {curr.next = right;}return dm.next;}
}

从一大段文本中找出TOP K 的高频词汇

题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

class Solution {public int[] topKFrequent(int[] nums, int k) {PriorityQueue<int[]> pq = new PriorityQueue<>((a,b)->a[1]-b[1]);Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {map.put(nums[i], map.getOrDefault(nums[i], 0)+1);}for (int key : map.keySet()) {if (pq.size() < k) {pq.offer(new int[]{key, map.get(key)});}else {if (pq.peek()[1] < map.get(key)) {pq.poll();pq.offer(new int[]{key, map.get(key)});}}}int[] ans = new int[k];for (int i = 0; i < k; i++) {ans[i] = pq.poll()[0];}return ans;}
}

题目: 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。

返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。

class Solution {public List<String> topKFrequent(String[] words, int k) {Map<String, Integer> map = new HashMap<>();for (int i = 0; i < words.length; i++) {map.put(words[i], map.getOrDefault(words[i], 0)+1);}PriorityQueue<String> pq = new PriorityQueue<>((a,b)->{//如果不同的单词有相同出现频率, 按字典顺序 排序if (map.get(a) == map.get(b)) {return b.compareTo(a);}return map.get(a) - map.get(b);});for (String s:map.keySet()) {pq.offer(s);if (pq.size() > k) {pq.poll();}}String[] ans = new String[k];for (int i = k-1; i >= 0; i--) {ans[i] = pq.poll();}return Arrays.asList(ans);}
}

相关文章:

2025高频面试算法总结篇【排序】

文章目录 直接刷题链接直达把数组排成最小的数删除有序数组中的重复项求两个排序数组的中位数求一个循环递增数组的最小值数组中的逆序对如何找到一个无序数组的中位数链表排序从一大段文本中找出TOP K 的高频词汇 直接刷题链接直达 把一个数组排成最大的数 剑指 Offer 45. 把…...

计算机视觉基础4——特征点及其描述子

一、特征点检测 &#xff08;一&#xff09;特征点定义 图像中具有独特局部性质的点。 &#xff08;二&#xff09;特征点性质 具有局部性&#xff08;对遮挡和混乱场景鲁棒&#xff09;、数量足够多&#xff08;一幅图像可产生成百上千个&#xff09;、独特性&#xff08;…...

React 初学者进阶指南:从环境搭建到部署上线

概览 环境搭建 核心概念 TodoList 实战 部署上线 一、快速搭建 React 开发环境 1. 选型:Vite 或 Create React App Vite:轻量、热更新速度快、可定制度高,适合追求更高效率的开发者。Create React App (CRA):社区支持全面,文档丰富,适合初学者上手。我使用的是Vite 提示…...

​docker加docker compose实现软件快速安装启动

docker 下载镜像官网页面&#xff1a;https://hub.docker.com/ docker是什么&#xff1f; 加速应用构建、分享、运行 docker命令 镜像操作 容器操作 docker ps:查看运行中的容器 docker ps -a: 查看所有容器&#xff0c;包括停止的 除了docker run和docker exec两个命令其余执…...

使用人工智能大模型腾讯元宝,如何免费快速做工作总结?

今天我们学习使用人工智能大模型腾讯元宝&#xff0c;如何免费快速做工作总结&#xff1f; 手把手学习视频地址&#xff1a;https://edu.csdn.net/learn/40402/666429 第一步在腾讯元宝对话框中输入如何协助老师做工作总结&#xff0c;通过提问&#xff0c;我们了解了老师做工…...

【小兔鲜】day03 Home模块与一级分类

【小兔鲜】day03 Home模块与一级分类 1. Home-整体结构搭建和分类实现1.1 页面结构 2. Home-banner轮播图功能实现 1. Home-整体结构搭建和分类实现 1.1 页面结构 分类实现 2. Home-banner轮播图功能实现 轮播图实现 在HomeBanner.vue中写出轮播图的结构 在apis目录下新建h…...

c++使用gstreamer录屏+声音

说明&#xff1a; c使用gstreamer完成录制电脑桌面的功能 我希望用gstreamer录屏&#xff0c;默认10秒&#xff0c;自动保存录屏文件到本地 这里是不带声音的版本&#xff0c;仅录屏&#xff0c; step1:C:\Users\wangrusheng\source\repos\CMakeProject1\CMakeProject1\CMakeL…...

PowerToys:Windows高效工具集

Microsoft PowerToys 是微软官方推出的 ‌免费开源效率工具集‌&#xff0c;专为 Windows 系统设计&#xff0c;通过模块化功能解决高频操作痛点&#xff0c;提升用户生产力。支持 Windows 10/11 系统&#xff0c;覆盖开发者、设计师及普通办公场景‌。 一、核心功能亮点‌ ‌高…...

pulsar中的延迟队列使用详解

Apache Pulsar的延迟队列支持任意时间精度的延迟消息投递&#xff0c;适用于金融交易、定时提醒等高时效性场景。其核心设计通过堆外内存索引队列与持久化分片存储实现&#xff0c;兼顾灵活性与可扩展性。以下从实现原理、使用方式、优化策略及挑战展开解析&#xff1a; 一、核…...

import torch 失败

1. 使用 PyTorch 官方 Conda 频道安装 运行以下命令&#xff08;根据你的 CUDA 版本选择&#xff09;&#xff1a; # CPU 版本 conda install pytorch torchvision torchaudio cpuonly -c pytorch# CUDA 11.8 版本 conda install pytorch torchvision torchaudio pytorch-cud…...

什么是异步?

什么是异步&#xff1f; 异步是一个术语&#xff0c;用于描述不需要同时行动或协调就能独立运行的流程。这一概念在技术和计算领域尤为重要&#xff0c;它允许系统的不同部分按自己的节奏运行&#xff0c;而无需等待同步信号或事件。在区块链技术中&#xff0c;异步是指网络中…...

Llama 4 家族:原生多模态 AI 创新新时代的开启

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

情感语音的“开源先锋”!网易开源

语音合成技术近年来取得了显著进步&#xff0c;特别是在语音克隆、语音助手、配音服务和有声读物等领域。然而&#xff0c;如何让合成的语音更具情感&#xff0c;更贴近人类的真实表达&#xff0c;一直是这一领域的重要研究方向。今天&#xff0c;我们将为大家介绍一款由网易有…...

消息队列基础概念及选型,常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息

前言 是时候总结下消息队列相关知识点啦&#xff01;我搓搓搓搓 本文包括消息队列基础概念介绍&#xff0c;常见解决方案包括消息可靠性、消息有序、消息堆积、重复消费、事务消息 参考资料&#xff1a; Kafka常见问题总结 | JavaGuide RocketMQ常见问题总结 | JavaGuide …...

子类是否能继承

继承 父类&#xff1a; 子 类 构造方法 非私有 不能继承 私有&#xff08;private&#xff09;不能继承 成员变量 非私有 能继承 私有&…...

计算机系统--- BIOS(基本输入输出系统)

一、BIOS的定义与核心定位 BIOS&#xff08;Basic Input/Output System&#xff09;是计算机启动时运行的底层固件&#xff0c;存储在主板的ROM芯片中。它是连接硬件与操作系统的桥梁&#xff0c;负责初始化硬件、加载启动程序&#xff0c;并提供基础配置界面。其核心目标是&a…...

Ollama 与 llama.cpp 深度对比

Ollama 与 llama.cpp 深度对比 1. 定位与架构 维度llama.cppOllama核心定位Meta LLaMA 的 C 推理框架&#xff0c;专注底层优化基于 llama.cpp 的高层封装工具&#xff0c;提供一站式服务技术栈纯 C 实现&#xff0c;支持量化/内存管理/硬件指令集优化&#xff08;AVX/NEON/M…...

C++ —— 智能指针

C ——智能指针 智能指针存在的必要性1. 解决内存泄漏问题2. 避免悬垂指针&#xff08;Dangling Pointer&#xff09;3. 异常安全性 std::unique_ptr &#xff08;独占所有权&#xff09;代码功能说明关键点解析内存管理流程对比传统指针为何使用 make_unique&#xff1f; uniq…...

Go语言的测试框架

Go语言测试框架详解 Go语言&#xff08;Golang&#xff09;自发布以来&#xff0c;因其简洁、高效和并发支持而受到广泛欢迎。在软件开发过程中&#xff0c;测试是确保代码质量与稳定性的重要环节。Go语言内置的测试框架为开发者提供了灵活而强大的测试工具&#xff0c;使得编…...

配置多区域集成IS-IS和抓包分析

基本概念 IS-IS区域结构&#xff1a; 使用两级层次结构&#xff1a;Level 1&#xff08;区域内&#xff09;和Level 2&#xff08;区域间&#xff09; Level 1路由器了解本区域拓扑 Level 2路由器在不同区域间传输流量 Level 1-2路由器同时执行两种功能 NSAP地址&#xff…...

网络原理 - HTTP/HTTPS

1. HTTP 1.1 HTTP是什么&#xff1f; HTTP (全称为 “超文本传输协议”) 是⼀种应用非常广泛的应用层协议. HTTP发展史&#xff1a; HTTP 诞生于1991年. 目前已经发展为最主流使用的⼀种应用层协议 最新的 HTTP 3 版本也正在完善中, 目前 Google / Facebook 等公司的产品已经…...

JavaScript逆向WebSocket协议解析与动态数据抓取

在JavaScript逆向工程中&#xff0c;WebSocket协议的解析和动态数据抓取是关键技能。本文将结合Fiddler、Charles Proxy和APIfox工具&#xff0c;详细讲解如何解析WebSocket协议并抓取动态数据。 一、WebSocket协议解析 &#xff08;一&#xff09;WebSocket协议的基本概念 …...

过滤震荡行行策略思路

本文讨论的是如何识别和过滤金融市场中的震荡行情&#xff0c;特别是对于趋势交易者来说&#xff0c;如何避免在震荡行情中频繁止损和资金回撤。 主要观点 震荡行情的定义 - 行情在有序与无序之间的中间状态&#xff0c;由多空力量不足导致的横盘。 震荡行情的分类 - 宽幅震…...

消息队列(kafka 与 rocketMQ)

为什么要使用消息队列?作用1: 削峰填谷(突发大请求量问题)作用2: 解耦(单一原则)作用3: 异步(减少处理时间) 如何选择消息队列(kafka&RocketMQ)成本功能性能选择 rocketMQ是参考kafka进行实现的为什么rocketMQ与kafka性能差距很大呢?kafka 的底层数据储存实现rocketMQ 的…...

Invalid bean definition with name ‘employeeMapper‘ defined in file。解决问题

求解决方法&#xff1a; Error starting ApplicationContext. To display the condition evaluation report re-run your application with debug enabled. 2025-04-06T15:23:24.87308:00 ERROR 30192 --- [ main] o.s.boot.SpringApplication : Appli…...

使用NVM管理nodejs

使用NVM管理nodejs 前言1. 先清空本地安装的node.js版本2. 下载nvm管理工具3. 安装nvm管理工具4. 输入命令查看nvm版本号5. 查看node.js版本号6. 安装对应版本6.1安装命令6.2使用命令&#xff08;可以快速切换node版本&#xff09;6.3成功之后就可以查看本地的node版本了 7. 查…...

第11课:Tiled DiffusionVAE高分辨率放大应用

文章目录 Part.01 Tiled Diffusion原理与基本操作Part.02 Tiled Diffusion超高分辨率升级Part.03 与ControlNet Tile配合使用显存和图片大小的对应关系 Part.01 Tiled Diffusion原理与基本操作 降低显存负担,用不到一半的显存消耗实现同一张大图的绘制,提高超过50%的出图效…...

APS相关知识

MRP 在系统中实现 MRP&#xff08;物料需求计划&#xff09; 的逻辑&#xff0c;需要基于 数据库 和 算法 进行自动计算&#xff0c;确保物料按时到达&#xff0c;以满足生产需求。以下是 MRP 的核心逻辑和实现步骤&#xff1a; &#x1f4cc; MRP 系统实现流程 数据输入&…...

浮点数精度问题

目录 ieee754标准解决方法 和c语言一样&#xff0c;所有以ieee754标准的语言都有浮点数精度问题&#xff0c;js也有浮点数精度问题&#xff0c;并且因为是弱类型语言这个问题更严重&#xff0c;js的Number类型的数据都被视为浮点数 ieee754标准 js的数字类型就相当于c语言doub…...

DHCP Snooping各种场景实验案例

一、概述 DHCP Snooping的基本功能能够保证客户端从合法的服务器获取IP地址,而且能够记录DHCP客户端IP地址与MAC地址等参数的对应关系,进而生成绑定表。 DHCP Snooping的基本功能的配置任务如下(只有前面两个是必选的)。 使能DHCP Snooping功能。配置接口信任状态。(可选)使能…...

设计模式简述(八)中介者模式

中介者模式 描述基本使用使用 描述 为了简化多个类间复杂的耦合关系&#xff0c;单独定义一个中介者 将边界交互的部分交给中介者&#xff0c;从而简化各个类内部逻辑 个人建议在3个及以上的类间存在复杂交互关系时再考虑中介者&#xff0c;否则可能反而增加系统复杂度 基本使…...

【力扣hot100题】(064)在排序数组中查找元素的第一个和最后一个位置

调试了半天终于过了…… 神人题目&#xff0c;主要是情况太太太多了&#xff0c;有先找到左边界的情况、先找到右边界的情况、找到中间节点之后要依次找左右边界的情况……其实要是弄多一点循环应该就不会像我写的这么复杂&#xff0c;但我太懒了就是不想多开循环。 class So…...

【Python爬虫高级技巧】深入掌握lxml库:XPath解析/HTML处理/性能优化全攻略|附企业级实战案例

作为Python生态中最快的HTML/XML解析库&#xff0c;lxml凭借其C语言级别的性能表现&#xff0c;成为爬虫和数据处理的利器。但很多开发者仅停留在基础用法&#xff0c;未能充分发挥其潜力。唐叔将通过本期带你深入剖析lxml的奥秘。 文章目录 一、lxml架构设计揭秘1.1 Cython混合…...

ABAP 新语法 - corresponding

在 ABAP 中&#xff0c;CORRESPONDING 操作符用于根据字段名称自动映射结构体&#xff08;Structure&#xff09;或内表&#xff08;Internal Table&#xff09;的字段值。它比传统的 MOVE-CORRESPONDING 语句更灵活&#xff0c;支持更多控制选项。 基础用法 data: begin of …...

基于高云fpga实现的fir串行滤波器

大家好&#xff0c;随着国产芯片的崛起&#xff0c;本文将专注于使用国产fpga芯片----高云fpga实现串行fir滤波器的项目 1.fir滤波器简介 设计一个频域滤波器&#xff08;将想要保留的频率段赋值为1&#xff0c;其他频率段赋值为0&#xff09;&#xff0c;将其与含噪声信号的…...

Spring 中的 BeanFactory 和 ApplicationContext

在 Spring 中&#xff0c;BeanFactory 和 ApplicationContext 都是 IOC 容器的实现接口&#xff0c;负责管理 Bean 的生命周期和依赖注入。但它们之间确实有一些关键区别。 &#x1f50d; 一、什么是 BeanFactory&#xff1f; BeanFactory 是 Spring 最基础的 IOC 容器接口&am…...

木里风景文化|基于Java+vue的木里风景文化管理平台的设计与实现(源码+数据库+文档)

木里风景文化管理平台 目录 基于SSM&#xff0b;vue的木里风景文化管理平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 3 用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…...

国内 windows powershell 安装 scoop

目录 Win10 Terminal Powershell 安装 scoop 失败1. 网络问题2. 报错 Win10 Terminal Powershell 安装 scoop 失败 1. 网络问题 将通常使用的 get.scoop.sh 改为 scoop.201704.xyz (使用scoop国内镜像优化库) 2. 报错 Running the installer as administrator is disabled b…...

【Linux】iptables命令的基本使用

语法格式 iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]注意事项 不指定表名时&#xff0c;默认使用 filter 表不指定链名时&#xff0c;默认表示该表内所有链除非设置规则链的缺省策略&#xff0c;否则需要指定匹配条件 设置规则内容 -A&#xff1a…...

ROS2笔记-2:第一个在Gazebo中能动的例子

第一个在Gazebo中能动的例子 写在前面X-windows 与cursorSimple ROS2 RobotProject StructureFeaturesDependenciesInstallationUsageRobot DescriptionMovement PatternCustomization 解释运行的效果启动控制机器人移动 代码 写在前面 第一个在Gazebo中能动的例子 是指对我来…...

剑指Offer(数据结构与算法面试题精讲)C++版——day6

剑指Offer&#xff08;数据结构与算法面试题精讲&#xff09;C版——day6 题目一&#xff1a;不含重复字符的最长子字符串题目二&#xff1a;包含所有字符的最短字符串题目三&#xff1a;有效的回文 题目一&#xff1a;不含重复字符的最长子字符串 这里还是可以使用前面&#x…...

人工智能起源:从图灵到ChatGPT

如今作诗AI的祖先是打卡机、缓慢行动的机器人和神一般的游戏引擎。 “第一台能产生自己想法”的机器问世近70年后&#xff0c;人类的大脑仍然没有真正的对手 1958年冬天&#xff0c;30岁的心理学家弗兰克 罗森布拉特&#xff08;Frank Rosenblatt&#xff09;正从康奈尔大学前…...

vue2打包部署到nginx,解决路由history模式下页面空白问题

项目使用的是vue2&#xff0c;脚手架vue-cli 4。 需求&#xff1a;之前项目路由使用的是hash&#xff0c;现在要求调整为history模式&#xff0c;但是整个过程非常坎坷&#xff0c;遇到了页面空白问题。现在就具体讲一下这个问题。 首先&#xff0c;直接讲路由模式由hash改为…...

ASM磁盘组替换

1.udev绑定新磁盘 udevadm control --reload-rules udevadm trigger [rootrac1 ~]# ll /dev/asm* brw-rw---- 1 grid asmadmin 8, 64 Apr 4 13:55 /dev/asm-arc brw-rw---- 1 grid asmadmin 8, 48 Apr 4 14:04 /dev/asm-data brw-rw---- 1 grid asmadmin 8, 80 Apr 4 14:03…...

ZooKeeper集群部署(容器)

文章目录 一、ZooKeeper基本概念二、ZooKeeper集群部署1、前置环境准备2、ZooKeeper伪集群部署(可选)3、ZooKeeper集群部署(可选) 三、ZooKeeper集群验证1、查看集群角色2、数据同步测试3、选举leader测试 一、ZooKeeper基本概念 ZooKeeper是一个分布式且开源的分布式应用程序…...

Scala语言基础:开启你的 Flink 之旅

引言&#xff1a;为什么选择Scala&#xff1f; 大家好&#xff0c;我是心海&#xff01; Scala&#xff08;Scalable Language&#xff09;是一门融合面向对象与函数式编程的现代语言。它像瑞士军刀一样灵活——既能编写简洁的脚本&#xff0c;又能构建复杂的分布式系统。想象你…...

C++计算机视觉实战:100个实际案例分析

【2025最新版】C计算机视觉100个案例算法汇总(长期更新版) 本文是基于C的项目实战&#xff0c;需要具备一点C基础与深度学习基础&#xff0c;并且对opencv、open3d、tensorrt、onnxruntime有一定了解。 你们的订阅是我更新的动力&#xff0c;请订阅、点赞、收藏。 1.Yolov5实…...

V-SHOW和箭头函数在VUE项目的踩坑点

v-show和v-if v-show控制显示隐藏是通过控制CSS的display决定dom节点的显示和隐藏。v-if通过控制dom节点的渲染与否实现元素的显示和隐藏。 在vue中&#xff0c;template标签不参与页面渲染&#xff0c;也不会破坏代码的层级结构&#xff0c;所以多和v-if结合控制元素的显示隐…...

vscode使用方式

一、常用快捷键与代码操作 注释与代码排版 行注释&#xff1a;Ctrl /&#xff1b;块注释&#xff1a;Shift Alt A。 代码缩进&#xff1a;选中代码段后按 Tab&#xff08;右移&#xff09;或 Shift Tab&#xff08;左移&#xff09;。 代码导航与编辑 快速跳转文件&…...

使用OpenSceneGraph生成3D数据格式文件

OpenSceneGraph (OSG) 提供了多种方式来生成和导出3D数据格式文件。以下是详细的生成方法和示例代码&#xff1a; 一、基本文件生成方法 1. 使用osgDB::writeNodeFile函数 这是最直接的生成方式&#xff0c;支持多种格式&#xff1a; #include <osgDB/WriteFile>osg:…...