左神算法之中级提升(2)

news2024/9/24 19:22:20

目录

[案例1】

【题目描述】

【思路解析1】

【思路解析2】

【代码实现】

【案例2】

【题目描述】

 【思路解析】

【代码实现】

【案例3】

【题目描述】

 【思路解析】

【代码实现】

【案例4】

【题目描述】今日头条2018面试题 第四题

【输入描述】

【思路解析】

【代码实现】

【案例5】

【题目描述】

 【思路解析】

【代码实现】

【案例6】

【题目描述】

【思路解析】

【代码描述】

【案例7】

【题目描述】

 【思路解析】

【代码实现】

【案例8】

【题目描述】

 【思路解析】

【代码实现】

 【改为动态规划】

【案例9】

【题目描述】

【思路解析】

【代码实现】

【案例10】

【题目描述】

【思路解析】

 【代码实现】

【案例11】

【题目描述】

【思路解析】

【代码实现】


[案例1】

【题目描述】

给定一个非负整数n,代表二叉树的节点个数。返回能形成多少种不同的二叉树结构。

【思路解析1】

如果n小于0,返回0,如果n为1,可以形成一个空二叉树结构,如果n为1也可以形成一种二叉树结构,如果n为2,可以形成两种二叉树结构。对于其余普遍情况来说,总的情况为,(1)左子树没有节点,右子树有n-1个节点。(2)左子树一个节点,右子树n-2个节点.......(n)左子树n-1个节点,右子树无节点。这所有情况的总和。当一个子树节点超过二时,有可以把它作为主树来使用递归。

【思路解析2】

通过暴力递归改为动态规划。

【代码实现】

/**
 * @ProjectName: study3
 * @FileName: Ex1
 * @author:HWJ
 * @Data: 2023/7/10 8:10
 */
public class Ex1 {
    public static void main(String[] args) {
        System.out.println(dpWays(3));
    }

    public static int ways(int n) {
        return process(n);
    }

    public static int process(int n) {
        if (n < 0) {
            return 0;
        }
        if (n == 0) {
            return 1;
        }
        if (n == 1) {
            return 1;
        }
        if (n == 2) {  // 这都是baseCase条件
            return 2;
        }
        int res = 0;
        for (int l = 0; l <= n - 1; l++) { // 按照策略算总和
            int left = process(l); // 进行暴力递归
            int right = process(n - l - 1);
            res += left * right;
        }
        return res;
    }

    public static int dpWays(int n) {
        if (n < 0) {
            return 0;
        }
        if (n < 2){
            return 1;
        }
        int[] dp = new int[n + 1];
        dp[0] = 1; // 根据baseCase初始化
        for (int i = 1; i <= n; i++) { // 这里通过i来求不同节点的情况数。
            for (int j = 0; j < i; j++) {
                dp[i] += dp[j] * dp[i - j - 1]; // 通过递归改为动态规划
            }
        }
        return dp[n];
    }

}

【案例2】

【题目描述】

 【思路解析】

如何找到需要添加几个括号,首先我们要明白如何判断它是否是一个完整的括号字符串。

(1)先分析如何判断它是否是一个完整的括号字符串,使用一个变量count,当遍历到左括号时++,当遍历到右括号--,当在某个时刻时,如果count<0则不是一个完整字符串。如果遍历到最后,count==0,则是一个完整字符串。

(2)判断它需要添加多少个括号,使用变量count和ans,当遍历到左括号时count++,当遍历到右括号(1)如果count==0,此时需要添加左括号,ans++,(2)如果count>0,此时count--。遍历到最后,count>0,表示需要添加右括号,所以返回ans+count。

【代码实现】

/**
 * @ProjectName: study3
 * @FileName: Ex2
 * @author:HWJ
 * @Data: 2023/7/10 9:19
 */
public class Ex2 {
    public static void main(String[] args) {

    }

    public static boolean isComplete(String s) {
        char[] chars = s.toCharArray();
        int count = 0;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == '(') {
                count++;
            }else {
                count--;
            }
            if (count < 0) { // 如果出现任意时候,右括号比左括号,这时一定不能构成完整括号字符串
                return false;
            }
        }
        return count == 0;
        // 结束后count必须等于0
    }

    public static int needRight(String s) {
        char[] chars = s.toCharArray();
        int count = 0;
        int ans = 0;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == '(') {
                count++;
            }else {
                if (count == 0) {
                    ans++;
                } else {
                    count--;
                }

            }
        }
        return ans + count;
    }

}

【案例3】

【题目描述】

 【思路解析】

因为要求去重,所有可以HashSet结构来做,然后再遍历每个元素num,然后查询num+k是否存在,这样就可以找到每个去重数字对了。 

【代码实现】

import java.util.HashSet;

/**
 * @ProjectName: study3
 * @FileName: Ex3
 * @author:HWJ
 * @Data: 2023/7/10 10:04
 */
public class Ex3 {
    public static void main(String[] args) {

    }

    public static int k_num(int[] arr, int k) {
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < arr.length; i++) {
            set.add(arr[i]);
        }
        int count = 0;
        for (Integer i : set) {
            if (set.contains(i + k)) {
                count++;
            }
        }
        return count;
    }
}

【案例4】

【题目描述】今日头条2018面试题 第四题

给一个包含n个整数元素的集合a,一个包含m个整数元素的集合b。
定义magic操作为,从一个集合中取出一个元素,放到另一个集合里,切操作过后每个集合的平均值都大于操作前。
注意一下两点:

不可以把一个集合的元素取空,这样就没有平均值了
值为x的元素从集合b取出放入集合a,但集合a中已经有值为x的元素,则a的平均值不变(因为集合元素不会重复),b的平均值可能会改变(因为x被取出了)
问最多可以进行多少次magic操作?

【输入描述】

第一行为两个整数n,m
第二行n个整数,表示集合a中的元素
第三行m个整数,表示集合b中的元素
对于100%的数据,,集合a中元素互不相同,集合b中的元素互不相同。

【思路解析】

对于集合a的平均值假设为avg_a,集合b的平均值假设为avg_b

(1)avg_a==avg_b,无法找到有效值取出

a. 取出a集合中大于avg_a的值,会使a的平均值下降,不满足要求

b. 取出a集合中等于avg_a的值,集合a和b平均值不会变化,不满足要求。

c. 取出a集合中小于avg_a的值,会使b的平均值下降,不满足要求。

(2)avg_a<avg_b,无法找到有效值取出

a. 取出a集合中大于avg_a的值,会使a的平均值下降,不满足要求。

b. 取出a集合中等于avg_a的值,会使b的平均值下降,不满足要求。

c. 取出a集合中小于avg_a的值,会使b的平均值下降,不满足要求。

(3)avg_a>avg_b

a. 取出a集合中大于avg_a的值,会使a的平均值下降,不满足要求。

b. 取出a集合中等于avg_a的值,会使b的平均值上升,但a集合的平均值不会变化,不满足要求。

c. 取出a集合中小于avg_a的值并且大于avg_b的值,会使b的平均值上升,会使avg_a的平均值上升,满足要求。

(c.1) 取出a集合中小于avg_a的值并且大于avg_b的值,这样的值可能有多个,我们应选择这里面中最小的值(并且满足b集合不存在这个值),这样可以使avg_a变大幅度尽可能大,可以avg_b变大的幅度尽可能小。这样差值越大,则选择的值可能会进一步变多。

【代码实现】

import java.util.Arrays;
import java.util.HashSet;

/**
 * @ProjectName: study3
 * @FileName: Ex4
 * @author:HWJ
 * @Data: 2023/7/10 10:46
 */
public class Ex4 {
    public static void main(String[] args) {

    }

    public static int times(int[] a, int[] b) {
        int sumA = 0;
        for (int i = 0; i < a.length; i++) {
            sumA += a[i];
        }
        int sumB = 0;
        for (int i = 0; i < b.length; i++) {
            sumB += b[i];
        }
        if (avg(sumA, a.length) == avg(sumB, b.length)) {
            return 0;
        }
        int[] arrMore;
        int[] arrLess;
        int moreSize;
        int lessSize;
        int sumMore;
        int sumLess;
        if (avg(sumA, a.length) > avg(sumB, b.length)) { // 对数组进行预处理
            arrMore = a;
            arrLess = b;
            sumMore = sumA;
            sumLess = sumB;
            moreSize = a.length;
            lessSize = b.length;
        } else {
            arrMore = b;
            arrLess = a;
            sumMore = sumB;
            sumLess = sumA;
            moreSize = b.length;
            lessSize = a.length;
        }
        HashSet<Integer> lessSet = new HashSet<>(); // 将较小平均值的数组创建一个集合,方便查询后面要加入的值是否存在
        for (int i = 0; i < lessSize; i++) {
            lessSet.add(arrLess[i]);
        }
        Arrays.sort(arrMore); // 对较大平均值的数组进行排序,保证拿出的有效数一定是较小的那个
        int ops = 0; // 操作数
        for (int i = 0; i < arrMore.length; i++) {
            int cur = arrMore[i];
            if (cur < avg(sumMore, moreSize) &&
                    cur > avg(sumLess, lessSize) &&
                    !lessSet.contains(cur)) { // 按顺序依次拿出较小值
                sumMore -= cur; // 拿出后对数据进行处理
                sumLess += cur;
                moreSize--;
                lessSize++;
                lessSet.add(cur);
                ops++;
            }
        }
        return ops;


    }

    public static double avg(int sum, int len) {
        return (sum * 1.0) / len;
    }
}

【案例5】

【题目描述】

 【思路解析】

它给出的是一个合法的括号序列,所以我们并不需要验证它是否是完整的括号字符串序列。使用一个遍历count,遇到左括号count++,遇到右括号count--,其中count的最大值就是这个括号字符串序列的深度。

【代码实现】

/**
 * @ProjectName: study3
 * @FileName: Ex5
 * @author:HWJ
 * @Data: 2023/7/10 11:18
 */
public class Ex5 {
    public static void main(String[] args) {
        System.out.println(depth("(()(()))"));
    }

    public static int depth(String s){
        if (s == null){
            return 0;
        }
        char[] chars = s.toCharArray();
        int count = 0;
        int max =Integer.MIN_VALUE;
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == '('){
                count++;
            }else {
                count--;
            }
            max = Math.max(count, max);
        }
        return max;
    }
}

【案例6】

【题目描述】

给你一个字符串其中只包含‘(’和‘)’,找出其中最长的有效括号字符串,并返回这个字符串的长度。

【思路解析】

计算以当前字符作为结尾时,最长有效括号字符串的长度为多少,然后统计其中的最大值。当当前字符为左括号时,以次字符为结尾不可能有左子符。如果当前字符为右括号,它就需要找到前面是否有左括号与其配对。怎么找到前面和它配对的字符在那个位置上,如果当前字符位置为i,我们可以知道i-1位置上有效字符串,则配对位置应该为i-dp[i-1]-1,如果为左括号则配对成功,否则配对失败。

配对成功后,怎么计算当前位置的有效长度:dp[i] = dp[i-1] + 2 + (pre > 0 ? dp[pre - 1] : 0);

【代码描述】

/**
 * @ProjectName: study3
 * @FileName: Ex6
 * @author:HWJ
 * @Data: 2023/7/10 11:25
 */
public class Ex6 {
    public static void main(String[] args) {
    }


    public static int maxLength(String s) {
        if (s == null || s.equals("")) {
            return 0;
        }
        char[] chars = s.toCharArray();
        int[] dp = new int[chars.length];
        int pre = 0;
        int res = 0;
        for (int i = 1; i < chars.length; i++) {
            if (chars[i] == ')') {
                pre = i - dp[i - 1] - 1;
                if (pre >= 0 && chars[pre] == '(') {
                    dp[i] = dp[i - 1] + 2 + (pre > 0 ? dp[pre - 1] : 0);
                }
            }
            res = Math.max(res, dp[i]);
        }
        return res;
    }

}

【案例7】

【题目描述】

 【思路解析】

构建一个辅助栈,其中按降序的方式进行排序,当原始栈不为空时,弹出元素,如果能按照降序的方式加入辅助栈就直接加入,否则就弹出辅助栈的元素重新加入原始栈,知道满足降序时将次元素加入辅助栈。

【代码实现】


import java.util.Stack;

/**
 * @ProjectName: study3
 * @FileName: Ex7
 * @author:HWJ
 * @Data: 2023/7/10 12:55
 */
public class Ex7 {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.add(2);
        stack.add(9);
        stack.add(7);
        stack.add(6);
        stack.add(4);
        stack.add(5);
        stack.add(3);
        sort(stack);
        while (!stack.isEmpty()){
            System.out.println(stack.pop());
        }
    }

    public static void sort(Stack<Integer> stack){
        Stack<Integer> help = new Stack<>();
        while (!stack.isEmpty()){
            int cur = stack.pop();
            if (help.isEmpty()){
                help.add(cur);
            }else {
                while (!help.isEmpty() && cur > help.peek()){
                    stack.add(help.pop());
                }
                help.add(cur);
            }
        }
        while (!help.isEmpty()){
            stack.add(help.pop());
        }
    }


}

【案例8】

【题目描述】

 【思路解析】

【代码实现】

/**
 * @ProjectName: study3
 * @FileName: NumToStr
 * @author:HWJ
 * @Data: 2023/6/12 14:31
 */
public class NumToStr {
    public static void main(String[] args) {
 
    }
 
    public static int translate(String str){
        char[] charArray = str.toCharArray();
        return process(charArray, 0);
    }
 
    public static int process(char[] str, int i){
        if ( i == str.length){ // 如果已经把所有的都决定完了,返回1
            return 1;
        }
        if (str[i] == '0'){ // 如果第i位为0,没法转换,返回0
            return 0;
        }
        if (str[i] == '1'){
            int res = process(str, i+1);  // i 自己作为单独的部分,后续有多少种方法,
            if (i+1 < str.length){
                res += process(str, i+2);// (i 和 i+1) 自己作为单独的部分,后续有多少种方法
            }
            return res;
        }
        if (str[i] == '2'){
            int res = process(str, i+1); // i 自己作为单独的部分,后续有多少种方法,
            if (i+1 < str.length && str[i+1] >= '0' && str[i+1] <= '6'){ // (i 和 i+1) 自己作为单独的部分,后续有多少种方法,
                res += process(str, i+2);   // 明确要求其不能超过26
            }
            return res;
        }
        return process(str, i+1);
    }
}

 【改为动态规划】

/**
 * @ProjectName: study3
 * @FileName: Ex8
 * @author:HWJ
 * @Data: 2023/7/10 14:32
 */
public class Ex8 {
    public static void main(String[] args) {

    }

    public static int dpWays(String s) {
        if (s.length() == 0) {
            return 0;
        }
        char[] str = s.toCharArray();
        int N = str.length;
        int[] dp = new int[N + 1];
        dp[N] = 1;
        dp[N - 1] = str[N - 1] == 0 ? 0 : 1;
        for (int i = N - 2; i >= 0; i--) {
            if (str[i] == '0') {
                dp[i] = 0;
            } else {
                dp[i] = dp[i + 1];
                int t = dp[i + 1] + (dp[i] - '0') * 10;
                if (t <= 26) {
                    dp[i] += dp[i + 2];
                }
            }

        }
        return dp[0];
    }

}

【案例9】

【题目描述】

【思路解析】

这里使用递归。很简单,详情看代码。

【代码实现】

说明:Node节点的代码很简单,这里懒得给出了。

/**
 * @ProjectName: study3
 * @FileName: Ex9
 * @author:HWJ
 * @Data: 2023/7/10 14:43
 */
public class Ex9 {
    public static void main(String[] args) {

    }

    public static int getMax(Node head){
        if (head == null){
            return 0;
        }
        return process(head);
    }

    public static int process(Node node){
        int left = node.value;
        int right = node.value;
        if (node.right != null){
            right += process(node.right);
        }
        if (node.left != null){
            left += process(node.left);
        }
        return Math.max(left, right);
    }
}

 

【案例10】

【题目描述】

 

【思路解析】

因为它每行和每列都是有序的,所以遍历从矩阵右上角开始。如果当前位置大于目标值就往左滑动一下,,如果当前位置小于目标值就往下滑动。直到越界了,还没有找到目标值就返回false。

 【代码实现】

/**
 * @ProjectName: study3
 * @FileName: Ex10
 * @author:HWJ
 * @Data: 2023/7/10 15:12
 */
public class Ex10 {
    public static void main(String[] args) {
        int[][] matrix = {{1, 5, 9, 10}, {2, 6, 11, 13}, {7, 9, 15, 17}};
        System.out.println(search(matrix, 7));
    }

    public static boolean search(int[][] matrix, int aim) {
        int N = matrix.length;
        int M = matrix[0].length;
        int i = 0;
        int j = M - 1;
        while (i >= 0 && i < N && j >= 0 && j < M) {
            if (matrix[i][j] > aim) {
                j--;
            } else if (matrix[i][j] < aim) {
                i++;
            } else {
                return true;
            }
        }
        return false;
    }
}

【案例11】

【题目描述】

给出一个二维矩阵,每行都只有1和0,并且规定左边全是0,右边全是1,返回含1最多的行号。

如 00011111  或者 0000000 或者 11111111

【思路解析】

从右上角开始,滑动到第一行的第一个1的位置,并记录当前max1(表示目前已知最多1的数量),然后将第一行的行号加入到list中。然后往下滑动,如果此位置是0,就继续往下滑动,如果此位置是1,就参看是否能往左滑动,如果能,则清空list,并重新记录max1和将此行行号加入到list中,如果不能,则把此行行号加入到list中。

【代码实现】

import java.util.LinkedList;

/**
 * @ProjectName: study3
 * @FileName: Ex11
 * @author:HWJ
 * @Data: 2023/7/10 15:32
 */
public class Ex11 {
    public static void main(String[] args) {
        int[][] matrix = {{0,0,0,0,1,1,1},{0,0,0,1,1,1,1},{0,0,0,0,0,0,1},{0,0,0,1,1,1,1},{1,1,1,1,1,1,1}};
        LinkedList<Integer> list = search(matrix);
        for (int i :list) {
            System.out.println(i);
        }

    }

    public static LinkedList<Integer> search(int[][] matrix) {
        int N = matrix.length;
        int M = matrix[0].length;
        int i = 0;
        int j = M - 1;
        LinkedList<Integer> list = new LinkedList<>();
        while (i >= 0 && i < N && j >= 0 && j < M) {
            if (j > 0 && matrix[i][j-1] == 1) {
                if (i != 0) { // 如果向下滑动后能左滑,就清空列表
                    list.clear();
                }
                j--;
            } else{
                if (i == 0){ //如果此时不能左滑了,此时为第一行,则直接加入,
                    list.add(i+1);
                }else {
                    if(matrix[i][j] == 1){ // 如果不是第一行,当前位置是1,就加入
                        list.add(i+1);
                    }
                }
                i++;
            }
        }
        return list;
    }
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对于没有任何基础的初学者,云计算该怎样学习?

想学习任何一门专业技能&#xff0c;可以按下面这一套逻辑梳理&#xff01; 1&#xff09;了解基本内容 云计算这个技术是做什么的&#xff1f;适用哪些场景&#xff1f;有什么优点和缺点&#xff1f; 同时建议先找技术大纲&#xff0c;至少要学哪些技能点&#xff0c;可以网…

Layui之入门

目录 一、layui介绍 1.是什么 2.谁开发的 3.特点 二、layui&#xff0c;easyui和bootstrap的区别 1.layui、easyui与bootstrap的对比 2. layui和bootstrap对比&#xff08;这两个都属于UI渲染框架&#xff09; 3. layui和easyui对比 三、基础使用 四、登录注册实例讲解 …

医院陪诊小程序开发|陪诊小程序定制|陪诊服务app成品

陪诊小程序的功能开发对于陪诊行业有以下好处&#xff1a;   提高服务效率&#xff1a;陪诊小程序可以提供在线预约功能&#xff0c;方便用户随时预约合适的陪诊人员&#xff0c;减少了繁琐的人工沟通和安排工作&#xff0c;提高了服务效率。   增加服务范围&#xff1a;通…

基于matlab将图像标记器多边形转换为标记的块图像以进行语义分割(附源码)

一、前言 此示例演示如何将存储在对象中的多边形标签转换为适用于语义分割工作流的标记阻止图像。 可以使用计算机视觉工具箱中的图像标记器应用来标记太大而无法放入内存和多分辨率图像的图像。有关详细信息&#xff0c;请参阅在图像标记器&#xff08;计算机视觉工具箱&…

uniapp zjy-calendar日历,uni-calendar日历增强版

一、zjy-calendar简介 zjy-calendar日历是对uniapp uni-calendar日历的增强&#xff0c;支持圆点和文字自定义颜色。 二、使用方法 源使用说明&#xff1a;https://uniapp.dcloud.net.cn/component/uniui/uni-calendar.html 1、下载导入 https://ext.dcloud.net.cn/plugin?…

web-php

目录 基础 注释 php程序的组成 php的数据类型 php代码的运行 代码 显示时间 输出账户名和密码 后端对前端的数据进行验证处理代码 连接数据库的代码 前后端代码相结合验证&#xff0c;实现登录接口验证 login.html login.php register.html register.php error…

大模型调用工具魔搭GPT——一键调用魔搭社区上百个AI模型的API

为了让模型开发变得更容易,阿里云在发布会现场推出了一款令开发者耳目一新的工具:ModelScopeGPT(魔搭GPT)。它能够通过担任“中枢模型”的大语言模型一键调用魔搭社区其他的AI模型,实现大模型和小模型协同完成复杂任务。 这类智能调用工具被业界普遍看好。ModelScopeGP…

Android Handler被弃用,那么以后怎么使用Handler,或者类似的功能

Android API30左右&#xff0c;Android应用在使用传统写法使用Handler类的时候会显示删除线&#xff0c;并提示相关的方法已经被弃用&#xff0c;不建议使用。 Handler handler new Handler(){Overridepublic void handleMessage(NonNull Message msg) {super.handleMessage(…

分配操作菜单

目录 概述介绍数据库后端前端效果展示 概述 在写后台管理系统时, 我们可以根据不同的登录人,给予不同的功能菜单 如 :给楼栋管理员登录时分配(楼栋管理,宿舍管理) 所以在数据库就要创建: 1.登录人与角色表, 2再给角色表分配操作菜单 登录时查询对应的操作菜单,将数据响应给前端…

ASPICE软件工具链之Jira教程

Jira使用教程 一、什么是Jira? 二、Jira的使用教程 功能介绍: 创建工作流 工作流方案 设置字段流程 字段配置 界面方案 界面方案创建流程 问题类型界面方案 将项目与预先创建的方案关联 配置总流程 创建项目 设置项目 添加工作流 添加界面配置方案 设置Scrum 看板泳道图 一…

物联网行业的革命:Web3 技术如何改变我们的日常生活

物联网 (IoT) 是一个充满创新和潜力的领域&#xff0c;它将物理设备、传感器和互联网连接起来&#xff0c;实现智能化和自动化。 在过去几年中&#xff0c;从智能家居、智能城市到工业自动化&#xff0c;物联网技术已经渗透到了各个领域。然而&#xff0c;随着物联网设备和系统…

Spring源码系列-第1章-Spring源码纵览

必读 源码是循循渐进的&#xff0c;前面我会省略中间很多目前不需要深入的代码&#xff0c;所以会看起来代码比较少。省略的地方我会打上这样的标识 // ... 或者 // ...如果没打也不代表我没省略&#xff0c;可能是忘记了&#xff0c;不要看懵了。 第1章-Spring源码纵…

golang数据库操作相应内容--推荐【比较全】

Go为开发数据库驱动定义了一些标准接口&#xff0c;开发者可以根据定义的接口来开发相应的数据库驱动&#xff0c;只要是按照标准接口开发的代码&#xff0c; 以后需要迁移数据库时&#xff0c;不需要任何修改。 一、database/sql接口 1.1sql.Register 这个存在于database/s…

数分面试题:酒坛问题

问题&#xff1a;你有一个八升的酒坛&#xff0c;装满了酒&#xff0c;此外还有3升和5升的两个空酒坛&#xff0c;请在一个酒坛里装上刚好四升酒 关键&#xff1a;8拆分为3个正整数的加和&#xff0c;且3个正整数不能大于8&#xff0c;5&#xff0c;3 组合方式&#xff1a; 4…

【力扣算法02】之寻找两个正序数组的中位数 - python

文章目录 问题描述示例 1示例2提示 解题思路代码分析完整代码运行效果及示例代码示例代码1效果图 示例代码2效果图 完结 问题描述 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间…

机器学习洞察 | 分布式训练让机器学习更加快速准确

机器学习能够基于数据发现一般化规律的优势日益突显&#xff0c;我们看到有越来越多的开发者关注如何训练出更快速、更准确的机器学习模型&#xff0c;而分布式训练 (Distributed Training) 则能够大幅加速这一进程。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源…

限制远程访问,保障服务器安全,如何指定某台电脑远程本服务器?

好多人都在问&#xff0c;如何限制某台电脑远程访问本服务器是一个必须要解决的问题。下面&#xff0c;我将为大家介绍几种限制远程访问的方法&#xff0c;帮助大家保障服务器的安全性。 1&#xff0e;修改远程桌面端口号 默认情况下&#xff0c;Windows服务器的远程桌面端口号…

时序预测 | Matlab+Python实现基于高斯混合模型聚类结合CNN-BiLSTM-Attention的风电场短期功率预测

时序预测 | MatlabPython实现基于高斯混合模型聚类结合CNN-BiLSTM-Attention的风电场短期功率预测 目录 时序预测 | MatlabPython实现基于高斯混合模型聚类结合CNN-BiLSTM-Attention的风电场短期功率预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 基于高斯混…

1.Git使用技巧-常用命令3

1.Git使用技巧-常用命令3 文章目录 1.Git使用技巧-常用命令3一、版本分支介绍二、版本控制常用命令例子 三、git 仓库如何使用总结 一、版本分支介绍 分支介绍&#xff1a; Master &#xff1a; 稳定压倒一切&#xff0c;禁止尚review和测试过的代码提交到这个分支上&#xff…

1.2 向量基础

什么是向量 向量的定义 ①向量是有大小和方向的有向线段。 ②向量没有位置&#xff0c;只有大小和方向 ③向量的箭头是向量的结束&#xff0c;尾是向量的开始 ④向量魔术的位移能被认为是宇宙平行的唯一序列 &#xff08;向量的数组不是向量的位置&#xff0c;而是向量在各个维…