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的数组来表示两个大整数,数组的每个元素都是数字0-9。从这两个数组当中选出k个数字来创建一个最大数,其中k满足k < m n。选出来的数字在创建的最大数里面的位置…...
ModbusTCP服务端
1在Device下,添加设备net: 公交车。 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值映射到圆柱坐标系的公式。多数计算机图形学教材中已详细推导了这一公式,故此处从略。 从RGB转换为HSV的MATLAB函数是rgb2hsv,其语法为: hsv_imag…...
iOS Error Domain=PHPhotosErrorDomain Code=3300
AVCapturePhoto的数据保存到 PHPhotoLibrary的时候报错Error DomainPHPhotosErrorDomain Code3300解决代码(也可以使用addResourceWithType:data:options:来添加数据到request,JEPG的实测可以,raw的不确定): [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中我们常常使用到条件判断,if语句时常见的条件判断语句之一。那么如何使用if语句实现根据情况自动选择商品进行售卖呢? 2 方法 根据if语句执行时从上往下执行的特点,使用if语句、dict和list来实现整个流程。 代码清单 1 drink…...
任务复杂度与人机
任务复杂度计算是指根据任务的难易程度和需要的资源投入来评估任务的复杂程度。一般来说,任务复杂度计算会考虑以下几个因素: 难度程度:任务的难度程度是指完成任务所需要的知识、技能和经验等的要求。较高的难度程度会增加任务的复杂度。任务…...
Windows关闭zookeeper、rocketmq日志输出以及修改rocketmq的JVM内存占用大小
JDK-1.8zookeeper-3.4.14rocketmq-3.2.6 zookeeper 进入到zookeeper的conf目录 清空配置文件,只保留下面这一行。zookeeper关闭日志输出相对简单。 log4j.rootLoggerOFFrocketmq 进入到rocketmq的conf目录 logback_broker.xml <?xml version"1.0&q…...
Convai:让虚拟游戏角色更智能的对话AI人工智能平台
【产品介绍】 名称 Convai 具体描述 Convai是一款专为虚拟世界而设计的对话人工智能平台,它可以让你为你的游戏或应用中的角色 赋予人类般的对话能力。Convai利用了最先进的生成式对话人工智能技术,让你的角色可以…...
【送书活动】大模型赛道如何实现华丽的弯道超车
文章目录 导读前言AI/ML 模型训练任务对数据平台的需求01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率,降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署 核心密码01 通过数据抽象化统一数据孤岛02 通过分布…...
opencv dnn模块 示例(16) 目标检测 object_detection 之 yolov4
博客【opencv dnn模块 示例(3) 目标检测 object_detection (2) YOLO object detection】 测试了yolov3 及之前系列的模型,有在博客【opencv dnn模块 示例(15) opencv4.2版本dnn支持cuda加速(vs2015异常解决)】 说明了如何使用dnn模块进行cuda…...
Python提取JSON数据中的键值对并保存为.csv文件
本文介绍基于Python,读取JSON文件数据,并将JSON文件中指定的键值对数据转换为.csv格式文件的方法。 在之前的文章Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内(https://blog.csdn.net/zhebushibiaoshifu/article/details/132…...
使用IDEA开发Servlet
一、新建工程 二、填写新工程的基本信息 javaee8的项目可以运行在tomcat9 三、配置tomcat 1、编辑server信息 “On frame deactivation”的意思是idea窗口发生切换时。 2、编辑部署信息 war exploded方式,这种方式是以文件夹方式部署的,支持热加载。 …...
腾讯mini项目-【指标监控服务重构】2023-07-21
今日已办 当在Docker容器中运行程序时,可能会遇到使用os.Getpid()函数时出现异常的情况。这是因为Docker容器中的进程隔离机制与宿主机器不同,容器内部的进程可能无法访问宿主机器的进程信息。 要解决这个问题,可以尝试: 使用do…...
Spring MVC里的DispatchServlet(结合Spring官网翻译)
Spring MVC里的DispatchServlet 前言1.Spring Web MVC1.1 DispatcherServlet(中央调度器)1.1.1 Context Hierarchy(上下文层次结构)1.1.2 Special Bean Types(特定的bean类型)1.1.3 Web MVC Config1.1.4 Se…...
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型...
全文链接:http://tecdat.cn/?p32496 人口流动与迁移,作为人类产生以来就存在的一种社会现象,伴随着人类文明的不断进步从未间断(点击文末“阅读原文”获取完整代码数据)。 相关视频 人力资源是社会文明进步、人民富裕…...
解决 Axios 跨域问题,轻松实现接口调用
跨域是指访问另外一个域的资源,由于浏览器的同源策略,默认情况下使用 XMLHttpRequest 和 Fetch 请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略,这是由浏览器对 JavaScript 施加的安全限制。 Axios 跨域常见报错 跨域请求被阻止 (…...
Layui快速入门之第十节 表单
目录 一:基本用法 二:输入框 普通输入框 输入框点缀 前置和后置 前缀和后缀 动态点缀 密码显隐 内容清除 自定义动态点缀 点缀事件 三:复选框 默认风格 标签风格 开关风格 复选框事件 四:单选框 普通单选框 自…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
