【牛客】【刷题节】美团2024届秋招笔试第二场编程真题

1.小美的加法【简单题】

题意理解

        给定一个数组做连加操作,其中只能将一个加号变成乘号

        将哪个加号变成乘号,使式子最后的结果最大

解题思路

        只有将两个相邻且乘机最大的数之间变成乘号后,才能保证整个式子结果最大

        所以第一步找到这两个数的位置

        在所有元素和中减去这两个元素,加上这两个元素的乘积即可。

        这里采用滑动窗口来找相邻乘积最大的两个元素,其中滑动窗口大小为2.

注意:数组的元素顺序不能变,所以不能排序

1.滑动窗口解题

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int len=in.nextInt();
        long[] nums=new long[len];
        for(int i=0;i<len;i++) nums[i]=in.nextLong();
        Main main=new Main();
        System.out.println(main.compute(nums));
    }

    public Long compute(long[] nums){
        long result=0;
        int maxNeighbor=0;
        for(int i=0;i<nums.length-1;i++){
            result+=nums[i];
            if(nums[i]+nums[i+1]>nums[maxNeighbor]+nums[maxNeighbor+1]){
                maxNeighbor=i;
            }
        }
        result+=nums[nums.length-1];
        result=result-nums[maxNeighbor]-nums[maxNeighbor+1]+nums[maxNeighbor]*nums[maxNeighbor+1];
        return result;
    }
}

2.复杂度分析

时间复杂度:O(n) 遍历数组的时间耗费

空间复杂度:O(n) 数组存储的空间耗费

2.小美的数组操作【技巧】

题意理解

        给定一个数组,每次选中两个数,一个元素+1,一个元素-1

        最终使数组中的众数出现的次数最多。

解题思路

        我的思路:求平均数,然后将数组排序,让所有的数都向平均数靠近。

        对于平均数为整数的来说,可以实现。但对于平均数不为整数的发生错误。

        借鉴大佬的思路:

        

个人理解

        对于平均数为整数的,所有数向平均数靠近。

        对于平均数部位整数的,去掉一个元素,保证其他元素的平均数是整数,此时重复上述操作。 关键:如何挑选去除的那个元素呢,即如何选取垃圾数。 

        贪心思路:选取最大值或最小值为垃圾数,将多余的位数分给垃圾数——将avg+1和avg-1分别作为众数来计算,进行比较。

注意:+1和-1操作是对称的,有k个+1则有k个-1操作

        对于[2,2,4,4]来说,不操作,2/4都是众数,都有两个。但是不满组足众数最多。

        操作后:[3,3,3,3],众数是3有4个

1.贪心解题

import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();
        long[] nums = new long[len];
        for (int i = 0; i < len; i++) {
            nums[i] = in.nextLong();
        }
        Main main = new Main();
        System.out.println(main.compute(nums));
    }
    public long compute(long[] nums){
        long count=0;
        int len=nums.length;
        Arrays.sort(nums);
        long sum=0;
        for(int i=0;i<len;i++){
            sum+=nums[i];
        }
        if(sum%len==0){
            //没有垃圾数
            count=countK(nums,sum/len,0,len-1)/2;
        }else{
            //选最大的数为垃圾数
            long avg=(sum-nums[len-1])/(len-1);
            //丢垃圾
            long countMA1=countK(nums,avg,1,len-2)+Math.abs(avg-nums[0])+Math.abs((sum-nums[len-1]-avg*(len-1)));//中间得操作+第一个数取+垃圾桶丢
            long countMA2=countK(nums,avg+1,1,len-2)+Math.abs(avg+1-nums[0])+Math.abs((sum-nums[len-1]-(avg+1)*(len-1)));//中间操作+第一个数取+垃圾桶拿

            //选最小的数为垃圾数
            avg=(sum-nums[0])/(len-1);
            long countMI1=countK(nums,avg,1,len-2)+Math.abs(avg-nums[len-1])+Math.abs((sum-nums[0]-avg*(len-1)));//中间操作数+最后一个数丢+垃圾桶丢
            long countMI2=countK(nums,avg+1,1,len-2)+Math.abs(avg+1-nums[len-1])+Math.abs((sum-nums[0]-(avg+1)*(len-1)));//中间操作数+最后一个数丢+垃圾桶拿
            count=Math.min(Math.min(countMI1,countMI2),Math.min(countMA1,countMA2))/2;
        }
        return count;
    }

    public long countK(long[] nums,long avg,int left,int right){
        long count=0;
        for(int i=left;i<=right;i++){
            if(nums[i]<avg){
                count+=avg-nums[i];
            }
            if(nums[i]>avg){
                count+=nums[i]-avg;
            }
        }
        return count;
    }
}

代码里有一个技巧

2.复杂度分析

时间复杂度:O(n*log(n)) 排序的时间复杂度

空间复杂度:O(n) 排序所需的额外空间

主要是Arrays.sort的损耗

3.小美的01串翻转【技巧】-动态规划

题意理解:

        这道题理解起来有点绕:首先明确:  一个01串的权重:使得相邻位不同的最小操作数

        其次:统计所有子串(包含其本身、长度>=2的)权重的和。即为所求的值。

解题思路:

不成熟且错误的思路,故借鉴大佬思路

        

个人理解:       

        操作字符串的目的:为了使字符串相邻字符不相同

        那么:长度为s.len 的满足条件的子串有两种,要么以1开头,要么以0开头

        即:s=10001   那么满足条件的修改为: 10101  或01010

        将其子串与这两个目标串进行比较,同一位置值不同则说明需要修改,统计不同的字符,即为修改次数。

        两个修改次数取最小值,即为所求。

        上表中的每个位置[i,j]表示从i到位置j的子串的权值是多少

重新发现思路:

        这道题目可以用动态规划来解决。其中如何和动态规划结合起来呢。

        首先是子串,子串有一个开始位置和起始位置,其中每个位置有两种可能0或1

        (1)定义三维dp数组

        dp[i][j][0]表示从i开始到j位置的子串,若以0结尾的权值

        dp[i][j][1]表示从i开始到j位置的子串,若以1结尾的权值

        (2)递推公式

        dp[i][j][x] 表示从i到j位置得子串,以x结尾的权值
        //子串当前以0结尾
        dp[i][j][0]=dp[i][j-1][1];
        dp[i][j][1]=dp[i][j-1][0]+1;
        //当前以1结尾
        dp[i][j][0]=dp[i][j-1][1]+1;
        dp[i][j][1]=dp[i][j-1][0];

        (3)初始化:

        则i,j的权值=min(dp[i][j][0],dp[i][j][1])
        初始化: 对于dp[i][j]的值总是和dp[i][j-1]有关,所以从左到右填数
        dp[i][i]=0

1.解题

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String num = in.nextLine();
        Main main = new Main();
        System.out.println(main.compute(num));
    }
    public int compute(String num){
        /**
         * dp[i][j][x] 表示从i到j位置得子串,以x结尾的权值
         * //当前以0结尾
         * dp[i][j][0]=dp[i][j-1][1];
         * dp[i][j][1]=dp[i][j-1][0]+1;
         * //当前以1结尾
         * dp[i][j][0]=dp[i][j-1][1]+1;
         * dp[i][j][1]=dp[i][j-1][0];
         *                 }
         * 则i,j的权值=min(dp[i][j][0],dp[i][j][1])
         * 初始化: 对于dp[i][j]的值总是和dp[i][j-1]有关,所以从左到右填数
         * dp[i][i]=0
         */
        int sum=0;
        int len=num.length();
        int[][][] dp=new int[len][len][2];
        for(int i=0;i<len;i++){
            if(num.charAt(i)=='0'){
                dp[i][i][0]=0;
                dp[i][i][1]=1;
            }else{
                dp[i][i][0]=1;
                dp[i][i][1]=0;
            }
        }
        //遍历所有的子串
        for(int i=0;i<len-1;i++){
            for(int j=i+1;j<len;j++){
                if(num.charAt(j)=='0'){//当前以0结尾
                    dp[i][j][0]=dp[i][j-1][1];
                    dp[i][j][1]=dp[i][j-1][0]+1;
                }else{//当前以1结尾
                    dp[i][j][0]=dp[i][j-1][1]+1;
                    dp[i][j][1]=dp[i][j-1][0];
                }
                sum+=Math.min(dp[i][j][0],dp[i][j][1]);
            }
        }

        return sum;
    }
}

2.复杂度分析

时间复杂度:O(n^2)  遍历所有子串(开始和截止位置)

空间复杂度:O(n^3) 记录结果值得损耗 

4.小美的外卖订单编号【简单题】

题意理解

        订单号:[1,m],超过m时,重新从1开始计数

        题目的问题是:第q个订单的订单编号x是多少?

解题思路

        编号1到m,很容易想到取余的操作。

        一个数对m取余获得[0,m-1]的区域

        第1单: 1%m==1

        第2单: 2%m==2

              ……

        第m单:m%m==0,此时单号应该是m,而不是0

        除第m单特殊之外,其余单没有什么不同。         

1.解题

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
     public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int len=in.nextInt();
        int[][] nums=new int[len][2];
        for(int i=0;i<len;i++){
            nums[i][0]=in.nextInt();
            nums[i][1]=in.nextInt();
        }
        Main main=new Main();
        int[] result= main.compute(nums);
        for(int i=0;i<len;i++){
            System.out.println(result[i]);
        }
    }
    public int[] compute(int[][] nums){
        int[] result=new int[nums.length];
        for(int i=0;i<nums.length;i++){
            if(nums[i][1]%nums[i][0]==0){
                result[i]=nums[i][0];
            }else{
                result[i]=nums[i][1]%nums[i][0];
            }
        }
        return result;
    }
}

2.复杂度分析

时间复杂度:O(n) 遍历的时间损耗

空间复杂度:O(n) 保存结果的时间损耗 

5.小美的数组操作2【简单题】

题意理解

        根据选择的数,做出对应操作,最后判断数组是否是递增序列。

        是输出Yes,否则输出No

解题思路

        根据输入,做指定操作,

        遍历检查数组是否是递增的

1.解题

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t=in.nextInt();
        Main main=new Main();
        String[] result=new String[t];
        for(int i=0;i<t;i++){//t次询问
            int n=in.nextInt();//数组长度
            int k=in.nextInt();//k次操作
            int[] nums=new int[n];
            int[][] kOpt=new int[k][2];
            for(int j=0;j<n;j++) nums[j]=in.nextInt();
            for(int j=0;j<k;j++){
                kOpt[j][0]=in.nextInt();
                kOpt[j][1]=in.nextInt();
            }
            result[i]=main.compute(nums,k,kOpt);
        }
        for(int i=0;i<t;i++){
            System.out.println(result[i]);
        }
    }

    public String compute(int[] nums,int k,int[][] kOpt){
        for(int i=0;i<k;i++){
            int u=kOpt[i][0]-1;
            int v=kOpt[i][1]-1;
            nums[u]++;
            nums[v]--;

        }
        for(int i=1;i<nums.length;i++){
            if(nums[i]<nums[i-1]) return "No";
        }
        return "Yes";
    }
}

2.复杂度分析

时间复杂度:O(n) 遍历数组进行检查的时间损耗

空间复杂度:O(n) 保存结果的空间损耗 

6.小美的数组构造【较难】-动态规划

题意理解

        数组a和数组b对应位置数不同,但a和b元素和相等。

        构造符合条件的正整数b有多少种方式。

解题思路

        没思路,这道题。

        结果这道题是一个动态规划类的题目。

        我去看了下别人的思路,然后猛的一看,不懂。纯看代码分析思路太难受了。啊啊啊啊

理解了,分析一下:

        这道题目还是一个动态规划的题,里面涉及状态转移的思路。

        以1 1 1数序列来演示
        dp[i][j]:表示sum=i,长度为j的串的可能的构造次数。
        则有:dp.size=(sum+1,len+1)=(4,4)

        其中特别的要求:b的元素是正整数,所以b的元素>=1
        根据题意:dp[0][j] 和dp[i][0]是没有意义的,全部初始化为0

       dp[j][j](j>=1)可以构造出全1的数列,若对应位置 a[j-1]不等于1,则该位置上可以取1,一种构造方式,否则为0.【题目要求对应位置元素不一致】

        当计算dp[3][3]时,我们可以将3分解为:(1,2)(2,1)两种方式

        当第3位取2时,前面的数有dp[1][2]种方式(nums[3-1]=1,此位置可以取2)

        当第2位取1时,前面的数有dp[2][2]种方式(nums[3-1]=1,此位置不可以取2)——不符合要求

        即dp[3][3]=dp[1][2]=0

        具体步骤来说:

        (1)首先定义二维dp数组,其中size 为[sum+1][len+1]

        dp[i][j]表示和为i,长度为j的,符合条件的构造方式有几种。

        (2)递推公式

       dp[i][j]首先判断,将sum=i分解为两部分,有多少种排列

        如:sum=3   则有(1,2)、(2,1)两种方式

        sum=i时,第j位的取值范围是[1,j-1]

        其中第j位的值==a[j-1]时,j值不能取,应为会和a的j-1位置重复,不符合要求

        当第j位取k值时,sum=i-k,长度=j-1有dp[i-k][j-1]种构造方法

        遍历k值,若第j位能取k,则dp[i][j]+=dpdp[i-k][j-1]

         (3) 初始化

       dp[0][j] 和dp[i][0]是没有意义的,全部初始化为0

       dp[j][j](j>=1)可以构造出全1的数列,若对应位置 a[j-1]不等于1,则该位置上可以取1,一种构造方式,否则为0.【题目要求对应位置元素不一致】

特别的:

        这道题目计算的数值会很大,所以元素及需要求和的值定义为long

        同时某个元素也可能会很大,所以在做加时,及时对元素做取模操作(%(7+10^9))

这道题目对我来说算是这7个里面最难的了,理解题想了半天,然后看明白了,不知道咋动手,想到应该用动态规划做,有没有思路了。想到了dp[sum][len],搞明白意义,理清楚之后,突然豁然开朗,也不是很难了,好像。但是搞明白还是花了很长时间。

1.解题

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int len = scanner.nextInt();
        long[] arrA = new long[len];
        for(int i=0;i<len;i++){
            arrA[i]=scanner.nextLong();
        }
        Main main=new Main();
        System.out.println(main.compute(arrA));

    }
public long compute(long[] nums ) {
        long sum = 0;
        int len = nums.length;
        for (int i = 0; i < nums.length; i++) sum += nums[i];
        long[][] dp = new long[(int) (sum + 1)][len + 1];//求dp[sum][0];
        for (int i = 1; i < sum + 1; i++) {
            Arrays.fill(dp[i], 0);
            if (nums[0] == i) {
                dp[i][1] = 0;
            } else {
                dp[i][1] = 1;
            }
        }
        for (long i = 2; i <= sum; i++) { //遍历和sum
            for (int j = 2; j <= len; j++) { //遍历长度len
                /**
                 * 计算dp[i][j]只需要固定第j个位置上的数字+dp[i-1][j-1]集合
                 * 其中位置j可以取的值:从1开始,到i-1,用k来遍历,为了不和原串a冲突
                 * 要判断j位置不可以取nums[j-1]的值
                 */
                long res=0;
                for (int k = 1; k <= i - 1; k++) {
                    if (nums[j - 1] == k) continue;
                    res= (long) ((res%(7+Math.pow(10,9)))+ (dp[(int)i - k][j - 1]%(7+Math.pow(10,9))));
                }
                dp[(int)i][j]=res;
            }

        }
        return dp[(int)sum][len];

    }
}

2.复杂度分析

时间复杂度:O(n^2) for循环时间损耗

空间复杂度:O(n^2) dp数组空间损耗

7.美团商家注册系统【简单题】

题意理解:

 这道题不难,考验数据的一个处理过程。

 其中我们需要统计的信息包含: 店铺名,主店地址,分店地址

 其中一些操作包含:

          只包含小写字母的店铺名;

          存在的店铺,比较地址是否和主店一致:

                和主店一致:注册失败

                和主店不一致:注册为分店

          注册为分店时:店铺名一致,地址一致,注册失败

          按店铺名升序输出

解题思路

        使用两个map来对数据进行组织

        businessMap维护店铺名和主店地址

        businessInfoMap维护店铺名,分店地址Set

        Set将分店地址去重,即可获得分店数量。

1.解题

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    Map<String,String> businessMap=new HashMap<>();
    Map<String, Set<String>> businessInfoMap=new HashMap<>();
    public static void main(String[] args) {
        Main main=new Main();
        Scanner in = new Scanner(System.in);
        int n=in.nextInt();
        in.nextLine();
        for(int i=0;i<n;i++){
            String business=in.nextLine();
            main.compute(business.split(" "));
        }
        String[] names=new String[main.businessMap.size()];
        int index=0;
        for(String name:main.businessMap.keySet()){
            names[index++]=name;
        }
        Arrays.sort(names);
        for(String name:names){
            System.out.println(name+" "+main.businessMap.get(name)+" "+main.businessInfoMap.get(name).size());
        }

    }
    public void compute(String[] businessInfo){
        //只能是小写字母
        char[] letter=businessInfo[0].toCharArray();
        for(int i=0;i<letter.length;i++){
            if(letter[i]>'z'||letter[i]<'a') return;
        }
        //注册
        if(!businessMap.containsKey(businessInfo[0])){//未注册过
            //注册
            businessMap.put(businessInfo[0],businessInfo[1]);
            businessInfoMap.put(businessInfo[0],new HashSet<>());
        }else{
            //已经注册过:是分店吗?
            if(!businessMap.get(businessInfo[0]).equals(businessInfo[1])){//是分店
                businessInfoMap.get(businessInfo[0]).add(businessInfo[1]);
            }
        }
    }
}

代码有个能改进的地方:关于按照餐厅名升序输出

List<String> keys=new ArrayList<>(businessMap.keySet())

Collections.sort(keys);

2.时间复杂度分析

时间复杂度:O(n*logn)主要耗费在店铺排序

空间复杂度:O(n)数据保存得空间耗费

 总结

题目见的得少,结果看到题目的时候,看了半天没理解题目的意思

对于int long的范围要有概念,否则会导致结果出错

看懂题目后,大部分其实是简单题,一些难一点的题目是动态规划问题。

关键点在于如何和动态规划思路联合起来,说起来还是题目做的少了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/409524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring之AOP源码解析(下)

前言 在上一遍文章中,我们主要讲解了ProxyFactory在Spring完成AOP动态代理的过程中发挥的作用。这一篇我们主要讲解这些注解都是如何注入Advisors,然后分析这些Advisors生效的条件 注解都是如何注入Advisor并匹配的 EnableTransactionManagement注解 我们在之前提到EnableT…

乡村研学|乡村研学小程序|基于微信小程序的乡村研学平台设计与实现(源码+数据库+文档)

乡村研学小程序目录 目录 基于微信小程序的乡村研学平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 &#xff08;1&#xff09;乡村研学管理 &#xff08;2&#xff09;商品信息管理 &#xff08;3&#xff09;商品类型管理 …

计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;Cisco Packet Tracer实验 本文对应的实验报告源文件请关注微信公众号程序员刘同学&#xff0c;回复思科获取下载链接。 实验目的实验环境实验内容MAC地址、IP地址、ARP协议总线型以太网的…

【DAY04 软考中级备考笔记】数据结构基本结构和算法

数据结构基本结构和算法 2月25日 – 天气&#xff1a;晴 周六玩了一天&#xff0c;周天学习。 1. 什么是数据结构 数据结构研究的内容是一下两点&#xff1a; 如何使用程序代码把现实世界的问题信息化如何用计算机高效地处理这些信息从创造价值 2. 什么是数据 数据是信息的…

零基础C++开发上位机--基于QT5.15的串口助手(一)

嵌入式开发的过程中&#xff0c;大部分我们的代码是无法一次成功的。这时候我们大部分的工程师可能最熟练的调试方法是printf函数&#xff0c;打印随意一个数据&#xff0c;来观察当前运行的函数是否执行正确。我们连接的工具有各个大神做的串口助手。另外&#xff0c;在做一般…

从0开始python学习-53.python中flask创建简单接口

目录 1. 创建一个简单的请求,没有写方法时默认为get 2. 创建一个get请求 3. 创建一个post请求&#xff0c;默认可以使用params和表单传参 4. 带有参数的post请求 1. 创建一个简单的请求,没有写方法时默认为get from flask import Flask, request# 初始化一个flask的对象 ap…

【贪心算法】:LeetCode860.柠檬水找零

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本专栏是关于各种算法的解析&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结构专栏&…

Ubuntu22.04和Windows10双系统安装

概要 本篇演示Ubuntu22.04和Windows10双系统的安装。先安装Ubuntu22.04&#xff0c;再安装Windows10。 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2进入BIOS 电脑开机按F12进入Boot Manager 2、U盘启动盘 需要用到两个U盘启动盘 &#xff08;1&a…

kubernetes集群搭建(1.26版本)

集群搭建 1.初始化安装k8s集群的实验1.1修改主机名称1.2关闭防火墙1.3关闭SELINUX1.4配置主机hosts文件&#xff0c;相互之间通过主机名访问1.5配置主机之间无密码登录1.6关闭交换分区swap&#xff0c;提升性能1.7修改机器内核参数1.9配置阿里云的repo源1.10配置安装k8s组件需要…

力扣● 343. 整数拆分 ● 96.不同的二叉搜索树

● 343. 整数拆分 想不到&#xff0c;要勇于看题解。 关键在于理解递推公式。 1、DP数组及其下标的含义&#xff1a;dp[i]是分解i这个数得到的最大的乘积。 2、DP数组如何初始化&#xff1a;dp[0]和dp[1]都没意义&#xff0c;所以直接不赋值&#xff0c;初始化dp[2]1即可。…

让程序员设计B端界面,好比武大郎招聘:向我看齐。不忍直视!

hello&#xff0c;我是大美B端工场&#xff0c;B端系统的要求越来越高了&#xff0c;很多公司还让程序员负责页面&#xff0c;页面搞的没法看&#xff0c;也怪不得程序员。程序员来搞页面&#xff0c;那还不是武大郎招聘——向我看齐&#xff0c;以我的标准为标准吗&#xff1f…

python 基础知识点(蓝桥杯python科目个人复习计划49)

今日复习内容&#xff1a;做复习题 例题1&#xff1a;希尔排序 题目描述&#xff1a; 希尔排序是直接插入排序算法的一种更高效的改进版本&#xff0c;但它是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出的改进方法之一&#xff1a; 1.插入排序在对几乎已经…

预训练-微调范式在人工智能领域的深远影响

预训练-微调范式的出现是人工智能领域的一大里程碑&#xff0c;它深刻改变了深度学习模型的训练方式和应用模式&#xff0c;并对整个行业产生了多方面的深远影响&#xff1a; 数据效率提升&#xff1a; 通过在大规模无标注数据上进行预训练&#xff0c;模型能够学习到丰富的语言…

linux常用的网络命令实战分享

文章目录 ifup/down命令ifconfig命令观察网络接口信息修改接口参数增加虚拟网络接口 route命令查看路由表增加路由表规则删除路由表规则 IP 命令ip linkip addr设定路由 ip route arp 命令 在实际研发运维工作中常常会涉及到网关相关的操作和知识&#xff0c;这里对linux下常用…

(详细使用指南)Linux下交叉编译带ffmpeg的opencv并移植到RK3588等ARM端

一 问题背景 瑞芯微RK3588等嵌入式板作为边缘端设备为算法模型的部署提供了便利&#xff0c;目前很多分类或好检测模型针对边缘端做了优化或量化&#xff0c;使得在边缘端也能达到实时稳定的识别和检测效果。 但嵌入式设备普遍的flash emmc不大&#xff0c;一般在32G左…

【数据结构与算法】(20)高级数据结构与算法设计之 Greedy Algorithm 贪心算法 代码示例与详细讲解

目录 4.2 Greedy Algorithm1) 贪心例子DijkstraPrimKruskal 2) 零钱兑换问题有几个解&#xff08;零钱兑换 II&#xff09;Leetcode 518最优解&#xff08;零钱兑换&#xff09;- 穷举法 Leetcode 322最优解&#xff08;零钱兑换&#xff09;- 贪心法 Leetcode 322 3) Huffman …

9.5K Star,又一款超棒开源轻量自动化运维平台

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 一个好的运维平台就变得非常重要了&#xff0c;可以节省大量的人力和物…

【HarmonyOS】低代码开发—使用低代码开发服务卡片

DevEco Studio还支持使用低代码开发功能开发服务卡片&#xff0c;目前只支持JS语言&#xff0c;且compileSdkVersion必须为7或以上。 下面以创建一个新的服务卡片为例进行说明。 1.打开一个工程&#xff0c;创建服务卡片&#xff0c;创建方法包括如下两种方式&#xff1a; 选…

SpringBoot自带的tomcat的最大连接数和最大的并发数

先说结果&#xff1a;springboot自带的tomcat的最大并发数是200&#xff0c; 最大连接数是&#xff1a;max-connectionsaccept-count的值 再说一下和连接数相关的几个配置&#xff1a; 以下都是默认值&#xff1a; server.tomcat.threads.min-spare10 server.tomcat.threa…

老隋蓝海项目temu跨境电商好不好做?

近年来&#xff0c;跨境电商成为我国对外贸易的新亮点&#xff0c;其中Temu作为拼多多旗下的新兴跨境电商平台&#xff0c;吸引了众多国内卖家参与。老隋作为行业内的知名人士&#xff0c;他对Temu跨境电商项目的评价备受关注。本文将分析老隋对Temu跨境电商的看法&#xff0c;…