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

lintcode 552 · 创建最大数 【算法 数组 贪心 hard】

题目

https://www.lintcode.com/problem/552/description

描述
给出两个长度分别是m和n的数组来表示两个大整数,数组的每个元素都是数字0-9。从这两个数组当中选出k个数字来创建一个最大数,其中k满足k <= m + n。选出来的数字在创建的最大数里面的位置必须和在原数组内的相对位置一致。返回k个数的数组。你应该尽可能的去优化算法的时间复杂度和空间复杂度。样例
样例 1:输入:nums1 = [3, 4, 6, 5], nums2 = [9, 1, 2, 5, 8, 3],k = 5
输出:[9, 8, 6, 5, 3]
解释:
从第一个数组选择[6, 5],从第二个数组选择[9, 8, 3]
样例 2:输入:nums1 = [6, 7], nums2 = [6, 0, 4],k = 5
输出:[6, 7, 6, 0, 4]
解释:
从第一个数组选择[6, 7],从第二个数组选择[6, 0, 4]
样例 3:输入:nums1 = [3, 9], nums2 = [8, 9],k = 3
输出:[9, 8, 9]
解释:
从第一个数组选择[9],从第二个数组选择[8, 9]

 //思路: 左边选i个,右边选k - i个,merge出最大的/*参考:C++答案地址:https://blog.csdn.net/qq_31552435/article/details/52216546比较双端队列【具有队列,栈的特性】 大小的逻辑https://blog.csdn.net/Olivia_CFS/article/details/121596084和C++答案这篇博客不同的是,java判断两个LinkedList的大小,需要自己写而C++ 的vector本身就是可比较的

答案

public class Solution {/*** @param nums1: an integer array of length m with digits 0-9* @param nums2: an integer array of length n with digits 0-9* @param k: an integer and k <= m + n* @return: an integer array*/public int[] maxNumber(int[] nums1, int[] nums2, int k) {//思路: 左边选i个,右边选k - i个,merge出最大的/*参考:C++答案地址:https://blog.csdn.net/qq_31552435/article/details/52216546比较双端队列【具有队列,栈的特性】 大小的逻辑https://blog.csdn.net/Olivia_CFS/article/details/121596084和C++答案这篇博客不同的是,java判断两个LinkedList的大小,需要自己写而C++ 的vector本身就是可比较的*/int len1 = nums1.length, len2 = nums2.length;int start = Math.max(k - len2, 0);int end = Math.min(k, len1);LinkedList<Integer> path = null;for (int k1 = start; k1 <= end; k1++) {LinkedList<Integer> path1 = f(nums1, k1);LinkedList<Integer> path2 = f(nums2, k - k1);// System.out.println("path1:" + path1);//System.out.println("path2:" + path2);LinkedList<Integer> cmp = connect(path1, path2);// System.out.println("cmp: " + cmp);//System.out.println("path:" + path);if (path != null) {for (int i = 0; i < cmp.size(); i++) {if (path.get(i) != cmp.get(i)) {if (cmp.get(i) > path.get(i)) {path = cmp;}break;}}} else {path = cmp;}}if(path.size()>0 && path.get(path.size()-1) ==null){path.removeLast();}int[] ans = new int[path.size()];for (int i = 0; i < path.size(); i++) {ans[i] = path.get(i);}return ans;}/*·输入数据[1,6,5,4,7,3,9,5,3,7,8,4,1,1,4][4,3,1,3,5,9]21输出数据[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,1,4,1,3,5,9]期望答案[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,3,5,9,1,1,4]*/public static LinkedList<Integer> connect(LinkedList<Integer> ll1, LinkedList<Integer> ll2) {//https://blog.csdn.net/Olivia_CFS/article/details/121596084,比较逻辑参考C++代码LinkedList<Integer> ll = new LinkedList<>();while (ll1.size() + ll2.size() > 0) {//参考:https://blog.csdn.net/Olivia_CFS/article/details/121596084//检查ll1,ll2谁更大while (ll1.isEmpty() && !ll2.isEmpty())ll.add(ll2.pollFirst());while (!ll1.isEmpty() && ll2.isEmpty())ll.add(ll1.pollFirst());int max =1;int i1 =0,i2 =0;boolean findMax = false;int n1 = ll1.size(),n2 =ll2.size();while (i1<n1 && i2 <n2){if(ll2.get(i2) >ll1.get(i1)){max =2;findMax =true;break;}else if(ll2.get(i2) < ll1.get(i1)){max =1;findMax =true;break;}else{i1++;i2++;}}//对于有的测试用例;这里很关键if(findMax){ //如果找到最大的了,比如  ll1= 1 2 3 4  和 ll2=1 2 4  ,ll2更大if(max ==1)ll.add(ll1.pollFirst());if(max ==2)ll.add(ll2.pollFirst());}else{//没有找到更大的,比如  ll1= 1 2 3  ll2= 1 2 3 4   那么ll2 更大if(n1>n2)ll.add(ll1.pollFirst());else ll.add(ll2.pollFirst());}}return ll;}public static LinkedList<Integer> f(int[] nums, int k) {int drop = nums.length - k;LinkedList<Integer> ll = new LinkedList<>();for (int num : nums) {while (drop > 0 && ll.size() > 0 && ll.peekLast() < num) {ll.removeLast();drop--;}ll.add(num);}while (ll.size() > k) {ll.removeLast();}return ll;}}

本地测试代码

public class LC552 {public static int[] maxNumber(int[] nums1, int[] nums2, int k) {//思路: 左边选i个,右边选k - i个,merge出最大的/*参考:C++答案地址:https://blog.csdn.net/qq_31552435/article/details/52216546比较双端队列【具有队列,栈的特性】 大小的逻辑https://blog.csdn.net/Olivia_CFS/article/details/121596084和C++答案这篇博客不同的是,java判断两个LinkedList的大小,需要自己写而C++ 的vector本身就是可比较的*/int len1 = nums1.length, len2 = nums2.length;int start = Math.max(k - len2, 0);int end = Math.min(k, len1);LinkedList<Integer> path = null;for (int k1 = start; k1 <= end; k1++) {LinkedList<Integer> path1 = f(nums1, k1);LinkedList<Integer> path2 = f(nums2, k - k1);// System.out.println("path1:" + path1);//System.out.println("path2:" + path2);LinkedList<Integer> cmp = connect(path1, path2);// System.out.println("cmp: " + cmp);//System.out.println("path:" + path);if (path != null) {for (int i = 0; i < cmp.size(); i++) {if (path.get(i) != cmp.get(i)) {if (cmp.get(i) > path.get(i)) {path = cmp;}break;}}} else {path = cmp;}}if(path.size()>0 && path.get(path.size()-1) ==null){path.removeLast();}int[] ans = new int[path.size()];for (int i = 0; i < path.size(); i++) {ans[i] = path.get(i);}return ans;}/*·输入数据[1,6,5,4,7,3,9,5,3,7,8,4,1,1,4][4,3,1,3,5,9]21输出数据[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,1,4,1,3,5,9]期望答案[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,3,5,9,1,1,4]*/public static LinkedList<Integer> connect(LinkedList<Integer> ll1, LinkedList<Integer> ll2) {//https://blog.csdn.net/Olivia_CFS/article/details/121596084,比较逻辑参考C++代码LinkedList<Integer> ll = new LinkedList<>();while (ll1.size() + ll2.size() > 0) {//参考:https://blog.csdn.net/Olivia_CFS/article/details/121596084//检查ll1,ll2谁更大while (ll1.isEmpty() && !ll2.isEmpty())ll.add(ll2.pollFirst());while (!ll1.isEmpty() && ll2.isEmpty())ll.add(ll1.pollFirst());int max =1;int i1 =0,i2 =0;boolean findMax = false;int n1 = ll1.size(),n2 =ll2.size();while (i1<n1 && i2 <n2){if(ll2.get(i2) >ll1.get(i1)){max =2;findMax =true;break;}else if(ll2.get(i2) < ll1.get(i1)){max =1;findMax =true;break;}else{i1++;i2++;}}//对于有的测试用例;这里很关键if(findMax){ //如果找到最大的了,比如  ll1= 1 2 3 4  和 ll2=1 2 4  ,ll2更大if(max ==1)ll.add(ll1.pollFirst());if(max ==2)ll.add(ll2.pollFirst());}else{//没有找到更大的,比如  ll1= 1 2 3  ll2= 1 2 3 4   那么ll2 更大if(n1>n2)ll.add(ll1.pollFirst());else ll.add(ll2.pollFirst());}}return ll;}public static LinkedList<Integer> f(int[] nums, int k) {int drop = nums.length - k;LinkedList<Integer> ll = new LinkedList<>();for (int num : nums) {while (drop > 0 && ll.size() > 0 && ll.peekLast() < num) {ll.removeLast();drop--;}ll.add(num);}while (ll.size() > k) {ll.removeLast();}return ll;}public static void main(String[] args) {test99();//test99ok();// test1();//test2();// test3();//test4();}public static void test99() {int[] nums1 =arr99, nums2 = arr100;int k1 = k99;int[] data1 = maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + ",");}System.out.println();int[] nums11 =arr99, nums21 = arr100;int k11 = k99;int[] data11 = new Solution().maxNumber(nums11, nums21, k11);for (int i : data11) {System.out.print(i + ",");}int n = data1.length;int incr = 0;for (int i = 0; i < n; i++) {if (data1[i] != data11[i]) {System.out.println(i + "  正确:" + data11[i]+"  当前:"+ data1[i]);if (incr++ == 3)break;}}}public static void test99ok() {int[] nums1 =arr99, nums2 = arr100;int k1 = k99;int[] data1 = new Solution().maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + ",");}System.out.println();}public static void test1() {int[] nums1 = {3, 4, 6, 5}, nums2 = {9, 1, 2, 5, 8, 3};int k1 = 5;int[] data1 = maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + " ");}System.out.println();}public static void test2() {int[] nums1 = {6, 7}, nums2 = {6, 0, 4};int k1 = 5;int[] data1 = maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + " ");}System.out.println();}public static void test3() {int[] nums1 = {3, 9}, nums2 = {8, 9};int k1 = 3;int[] data1 = maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + " ");}System.out.println();}public static void test4() {int[] nums1 = {1, 6, 5, 4, 7, 3, 9, 5, 3, 7, 8, 4, 1, 1, 4}, nums2 = {4, 3, 1, 3, 5, 9};int k1 = 21;int[] data1 = maxNumber(nums1, nums2, k1);for (int i : data1) {System.out.print(i + " ");}System.out.println();}static int[] arr99 =  {2,0,2,1,2,2,2,2,0,1,0,0,2,0,2,0,2,1,0,1,1,0,1,0,1,2,1,1,1,0,1,2,2,1,0,0,1,2,1,2,2,1,1,0,1,2,0,2,0,1,2,0,2,1,1,1,2,0,0,1,0,2,1,2,0,1,0,0,0,1,2,1,0,1,1,2,0,2,2,0,0,1,1,2,2,1,1,2,2,1,0,1,2,0,1,2,2,0,0,0,2,0,2,0,2,2,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,0,2,0,1,0,0,2,1,0,0,2,0,2,1,1,1,1,0,1,2,0,2,1,0,1,1,1,0,0,2,2,2,0,2,1,1,1,2,2,0,0,2,2,2,2,2,0,2,0,2,0,2,0,0,1,0,1,1,0,0,2,1,1,2,2,2,1,2,2,0,0,2,1,0,2,1,2,1,1,1,0,2,0,1,1,2,1,1,0,0,1,0,1,2,2,2,0,2,2,1,0,1,2,1,2,0,2,2,0,1,2,2,1,2,2,1,1,2,2,2,2,2,1,2,0,1,1,1,2,2,2,0,2,0,2,0,2,1,1,0,2,2,2,1,0,2,1,2,2,2,0,1,1,1,1,1,1,0,0,0,2,2,0,1,2,1,0,0,2,2,2,2,1,0,2,0,1,2,0},arr100={1,1,1,0,0,1,1,0,2,1,0,1,2,1,0,2,2,1,0,2,0,1,1,0,0,2,2,0,1,0,2,0,2,2,2,2,1,1,1,1,0,0,0,0,2,1,0,2,1,1,2,1,2,2,0,2,1,0,2,0,0,2,0,2,2,1,0,1,0,0,2,1,1,1,2,2,0,0,0,1,1,2,0,2,2,0,1,0,2,1,0,2,1,1,1,0,1,1,2,0,2,0,1,1,2,0,2,0,1,2,1,0,2,0,1,0,0,0,1,2,1,2,0,1,2,2,1,1,0,1,2,1,0,0,1,0,2,2,1,2,2,0,0,0,2,0,0,0,1,0,2,0,2,1,0,0,1,2,0,1,1,0,1,0,2,2,2,1,1,0,1,1,2,1,0,2,2,2,1,2,2,2,2,0,1,1,0,1,2,1,2,2,0,0,0,0,0,1,1,1,2,1,2,1,1,0,1,2,0,1,2,1,2,2,2,2,0,0,0,0,2,0,1,2,0,1,1,1,1,0,1,2,2,1,0,1,2,2,1,2,2,2,0,2,0,1,1,2,0,0,2,2,0,1,0,2,1,0,0,1,1,1,1,0,0,2,2,2,2,0,0,1,2,1,1,2,0,1,2,1,0,2,0,0,2,1,1,0,2,1,1,2,2,0,1,0,2,0,1,0};static int k99=      600;static class Solution {/*** @param nums1 an integer array of length m with digits 0-9* @param nums2 an integer array of length n with digits 0-9* @param k     an integer and k <= m + n* @return an integer array*/public int[] maxNumber(int[] nums1, int[] nums2, int k) {// Write your code hereif (k == 0)return new int[0];int m = nums1.length, n = nums2.length;if (m + n < k) return null;if (m + n == k) {int[] results = merge(nums1, nums2, k);return results;} else {int max = m >= k ? k : m;int min = n >= k ? 0 : k - n;int[] results = new int[k];for (int i = 0; i < k; ++i)results[i] = -0x7ffffff;for (int i = min; i <= max; ++i) {int[] temp = merge(getMax(nums1, i), getMax(nums2, k - i), k);results = isGreater(results, 0, temp, 0) ? results : temp;}return results;}}private int[] merge(int[] nums1, int[] nums2, int k) {int[] results = new int[k];if (k == 0) return results;int i = 0, j = 0;for (int l = 0; l < k; ++l) {results[l] = isGreater(nums1, i, nums2, j) ? nums1[i++] : nums2[j++];}return results;}private boolean isGreater(int[] nums1, int i, int[] nums2, int j) {for (; i < nums1.length && j < nums2.length; ++i, ++j) {if (nums1[i] > nums2[j])return true;if (nums1[i] < nums2[j])return false;}return i != nums1.length;}private int[] getMax(int[] nums, int k) {if (k == 0)return new int[0];int[] results = new int[k];int i = 0;for (int j = 0; j < nums.length; ++j) {while (nums.length - j + i > k && i > 0 && results[i - 1] < nums[j])i--;if (i < k)results[i++] = nums[j];}return results;}}}
/*
366 ms
时间消耗
·
21.32 MB
空间消耗
·
输入数据
[1,6,5,4,7,3,9,5,3,7,8,4,1,1,4]
[4,3,1,3,5,9]
21
输出数据
[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,1,4,1,3,5,9]
期望答案
[4,3,1,6,5,4,7,3,9,5,3,7,8,4,1,3,5,9,1,1,4]*/

相关文章:

lintcode 552 · 创建最大数 【算法 数组 贪心 hard】

题目 https://www.lintcode.com/problem/552/description 描述 给出两个长度分别是m和n的数组来表示两个大整数&#xff0c;数组的每个元素都是数字0-9。从这两个数组当中选出k个数字来创建一个最大数&#xff0c;其中k满足k < m n。选出来的数字在创建的最大数里面的位置…...

ModbusTCP服务端

1在Device下&#xff0c;添加设备net&#xff1a; 公交车。 2在net下添加 ModbusTCP...

Middleware ❀ Hadoop功能与使用详解(HDFS+YARN)

文章目录 1、服务概述1.1 HDFS1.1.1 架构解析1.1.1.1 Block 数据块1.1.1.2 NameNode 名称节点1.1.1.3 Secondary NameNode 第二名称节点1.1.1.4 DataNode 数据节点1.1.1.5 Block Caching 块缓存1.1.1.6 HDFS Federation 联邦1.1.1.7 Rack Awareness 机架感知 1.1.2 读写操作与可…...

Matlab图像处理-从RGB转换为HSV

从RGB转换为HSV HSV彩色系统基于圆柱坐标系。从RGB转换为HSV需要开发将(笛卡儿坐标系中的)RGB值映射到圆柱坐标系的公式。多数计算机图形学教材中已详细推导了这一公式&#xff0c;故此处从略。 从RGB转换为HSV的MATLAB函数是rgb2hsv&#xff0c;其语法为&#xff1a; hsv_imag…...

iOS Error Domain=PHPhotosErrorDomain Code=3300

AVCapturePhoto的数据保存到 PHPhotoLibrary的时候报错Error DomainPHPhotosErrorDomain Code3300解决代码&#xff08;也可以使用addResourceWithType:data:options:来添加数据到request&#xff0c;JEPG的实测可以&#xff0c;raw的不确定&#xff09;&#xff1a; [PHPhoto…...

LeetCode(力扣)435. 无重叠区间Python

LeetCode435. 无重叠区间 题目链接代码 题目链接 https://leetcode.cn/problems/non-overlapping-intervals/ 代码 class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if not intervals:return 0intervals.sort(keylambda x: x[0])co…...

opencv c++实现鼠标框选区域并显示选择的图片区域

OpenCV可以使用setMouseCallback设置鼠标事件的回调函数,从而然后根据需要进行处理。 setMouseCallback原型为: void cv::setMouseCallback(const cv::String& windowName, MouseCallback onMouse, void* userData = 0); 其中,参数说明如下:windowName:窗口名称 onMo…...

Python实现自主售卖机

1 问题 在python中我们常常使用到条件判断&#xff0c;if语句时常见的条件判断语句之一。那么如何使用if语句实现根据情况自动选择商品进行售卖呢&#xff1f; 2 方法 根据if语句执行时从上往下执行的特点&#xff0c;使用if语句、dict和list来实现整个流程。 代码清单 1 drink…...

任务复杂度与人机

任务复杂度计算是指根据任务的难易程度和需要的资源投入来评估任务的复杂程度。一般来说&#xff0c;任务复杂度计算会考虑以下几个因素&#xff1a; 难度程度&#xff1a;任务的难度程度是指完成任务所需要的知识、技能和经验等的要求。较高的难度程度会增加任务的复杂度。任务…...

Windows关闭zookeeper、rocketmq日志输出以及修改rocketmq的JVM内存占用大小

JDK-1.8zookeeper-3.4.14rocketmq-3.2.6 zookeeper 进入到zookeeper的conf目录 清空配置文件&#xff0c;只保留下面这一行。zookeeper关闭日志输出相对简单。 log4j.rootLoggerOFFrocketmq 进入到rocketmq的conf目录 logback_broker.xml <?xml version"1.0&q…...

Convai:让虚拟游戏角色更智能的对话AI人工智能平台

【产品介绍】​ 名称 Convai​ 具体描述​ Convai是一款专为虚拟世界而设计的对话人工智能平台&#xff0c;它可以让你为你的游戏或应用中的角色 赋予人类般的对话能力。Convai利用了最先进的生成式对话人工智能技术&#xff0c;让你的角色可以…...

【送书活动】大模型赛道如何实现华丽的弯道超车

文章目录 导读前言AI/ML 模型训练任务对数据平台的需求01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率&#xff0c;降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署 核心密码01 通过数据抽象化统一数据孤岛02 通过分布…...

opencv dnn模块 示例(16) 目标检测 object_detection 之 yolov4

博客【opencv dnn模块 示例(3) 目标检测 object_detection (2) YOLO object detection】 测试了yolov3 及之前系列的模型&#xff0c;有在博客【opencv dnn模块 示例(15) opencv4.2版本dnn支持cuda加速&#xff08;vs2015异常解决&#xff09;】 说明了如何使用dnn模块进行cuda…...

Python提取JSON数据中的键值对并保存为.csv文件

本文介绍基于Python&#xff0c;读取JSON文件数据&#xff0c;并将JSON文件中指定的键值对数据转换为.csv格式文件的方法。 在之前的文章Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/132…...

使用IDEA开发Servlet

一、新建工程 二、填写新工程的基本信息 javaee8的项目可以运行在tomcat9 三、配置tomcat 1、编辑server信息 “On frame deactivation”的意思是idea窗口发生切换时。 2、编辑部署信息 war exploded方式&#xff0c;这种方式是以文件夹方式部署的&#xff0c;支持热加载。 …...

腾讯mini项目-【指标监控服务重构】2023-07-21

今日已办 当在Docker容器中运行程序时&#xff0c;可能会遇到使用os.Getpid()函数时出现异常的情况。这是因为Docker容器中的进程隔离机制与宿主机器不同&#xff0c;容器内部的进程可能无法访问宿主机器的进程信息。 要解决这个问题&#xff0c;可以尝试&#xff1a; 使用do…...

Spring MVC里的DispatchServlet(结合Spring官网翻译)

Spring MVC里的DispatchServlet 前言1.Spring Web MVC1.1 DispatcherServlet&#xff08;中央调度器&#xff09;1.1.1 Context Hierarchy&#xff08;上下文层次结构&#xff09;1.1.2 Special Bean Types&#xff08;特定的bean类型&#xff09;1.1.3 Web MVC Config1.1.4 Se…...

数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型...

全文链接&#xff1a;http://tecdat.cn/?p32496 人口流动与迁移&#xff0c;作为人类产生以来就存在的一种社会现象&#xff0c;伴随着人类文明的不断进步从未间断&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 人力资源是社会文明进步、人民富裕…...

解决 Axios 跨域问题,轻松实现接口调用

跨域是指访问另外一个域的资源&#xff0c;由于浏览器的同源策略&#xff0c;默认情况下使用 XMLHttpRequest 和 Fetch 请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略&#xff0c;这是由浏览器对 JavaScript 施加的安全限制。 Axios 跨域常见报错 跨域请求被阻止 (…...

Layui快速入门之第十节 表单

目录 一&#xff1a;基本用法 二&#xff1a;输入框 普通输入框 输入框点缀 前置和后置 前缀和后缀 动态点缀 密码显隐 内容清除 自定义动态点缀 点缀事件 三&#xff1a;复选框 默认风格 标签风格 开关风格 复选框事件 四&#xff1a;单选框 普通单选框 自…...

构建可靠AI智能体:从提示词工程到结构化内容生成的实战指南

1. 项目概述与核心思路最近在折腾AI应用开发&#xff0c;特别是想搞一个能稳定输出、逻辑清晰、还能带点“人味儿”的文本生成工具。市面上现成的方案要么太“机械”&#xff0c;要么定制化程度不够&#xff0c;总感觉差点意思。后来&#xff0c;我在一个开发者社区里看到了一个…...

终极模组加载器指南:如何在5分钟内安全扩展《杀戮尖塔》游戏内容

终极模组加载器指南&#xff1a;如何在5分钟内安全扩展《杀戮尖塔》游戏内容 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是一款专为《杀戮尖塔》设计的开源模组加载器&…...

RedwoodJS数据备份与恢复终极指南:10个技巧保护你的应用数据安全 [特殊字符]

RedwoodJS数据备份与恢复终极指南&#xff1a;10个技巧保护你的应用数据安全 &#x1f512; 【免费下载链接】redwood RedwoodGraphQL 项目地址: https://gitcode.com/gh_mirrors/re/redwood RedwoodJS作为一款强大的全栈JavaScript框架&#xff0c;其数据安全保护机制对…...

Helm 2到Helm 3迁移实战:深入解析helm-2to3插件原理与操作指南

1. 项目概述与背景 如果你和我一样&#xff0c;在Kubernetes生态里摸爬滚打了几年&#xff0c;那你一定对Helm这个“包管理器”又爱又恨。爱的是它用声明式的Chart把复杂的应用部署变得像 helm install 一样简单&#xff1b;恨的是版本升级带来的“阵痛”&#xff0c;尤其是从…...

最后30天,PMP备考需要一次“认知切换”

背完所有知识点的人不一定能考过&#xff0c;但做对这三类切换的人一定能。大家好&#xff0c;我又来了。距离2026年6月14日PMP考试还有大约一个月的时间。如果看了我以前的文章&#xff0c;你已经知道这次考试很特殊——6月这场是现行考纲的绝版场次&#xff0c;之后考纲将从人…...

如何快速清理Windows右键菜单:ContextMenuManager的完整使用指南

如何快速清理Windows右键菜单&#xff1a;ContextMenuManager的完整使用指南 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单的混乱不堪而…...

从电视伴音收音机消亡看数字技术演进与仪器集成化趋势

1. 从一台“电视伴音收音机”说起&#xff1a;一个时代的消逝与技术演进的注脚我书桌抽屉的角落里&#xff0c;一直躺着一台老旧的收音机。它不是普通的AM/FM收音机&#xff0c;在它的波段选择旋钮上&#xff0c;除了熟悉的“AM”和“FM”&#xff0c;还有一个略显神秘的“TV”…...

基于Arduino Pro Micro的薄膜键盘矩阵改造:DIY低成本模拟飞行外设

1. 项目概述&#xff1a;为Falcon BMS打造一款经济型多功能按键面板如果你是一名《Falcon BMS》的飞行模拟爱好者&#xff0c;同时又对硬件DIY抱有热情&#xff0c;那么你很可能和我一样&#xff0c;对市面上那些动辄数百甚至上千元的专业模拟飞行外设感到望而却步。尤其是像F-…...

Tempera风格+古典画框+羊皮纸基底=高转化商业图?:电商视觉团队实测ROI提升210%的紧急部署方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Tempera风格古典画框羊皮纸基底高转化商业图&#xff1f;&#xff1a;电商视觉团队实测ROI提升210%的紧急部署方案 在Q3大促前72小时&#xff0c;某头部服饰品牌视觉中台紧急启用Tempera风格渲染管线&a…...

别再为本科毕业论文熬大夜!Paperxie 智能写作,一键搞定终稿的正确姿势

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 又到了本科毕业论文冲刺的季节&#xff0c;多少同学还在对着空白文档发呆&#xff1f;选题纠结半天定不下来&…...