蓝桥杯0基础学习

news2024/11/15 23:38:56

目录

Split()分隔字符串

StringBuilder用法

反转字符串中的单词

LocalDate用法

LocalDate类具体方法 

查询年月日

 修改时间

 判断日期先后,是否是闰年,月份年份长度

 对时间进行加减操作

跑步锻炼 

 使用LoaclDate解法

没使用LocalDate解法

next()和nextLine()的区别

BigInteger用法

java String类型与BigInteger类型互转

回溯算法

解决排序,子集合问题

全排列

题目-删除字符

解法一:使用栈

解法二:使用集合(原理和栈一致)

题目-不同字符的最小子序列

 解法一:使用栈

动态规划

斐波那契数

数组解法-时间复杂度O(n)

 解法二:时间复杂度O(n)

题目-零钱兑换

位运算操作

最小公约数、公倍数

二分查找

高效求素数

正则匹配


 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站前言 – 床长人工智能教程https://www.cbedai.net/gkbskc

Split()分隔字符串

Java中split主要用于分隔字符串,十分的常用

具体分析如下: 

1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".")。

2、如果用“|”作为分隔的话,必须是如下写法,String.split("\\|"),这样才能正确的分隔开,不能用String.split("|"),“.”和“|”都是转义字符,必须得加"\\"。

3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or")。

StringBuilder用法

反转字符串中的单词

反转字符中的单词

class Solution {
    public String reverseWords(String s) {
        String str[]=s.split(" ");
         StringBuilder res= new StringBuilder();
        for(int i=0;i<str.length;i++){
             StringBuilder sb=new StringBuilder(str[i]);
            res.append(sb.reverse().append(" "));
            sb.delete(0,sb.length());
        }
        return res.toString().trim();
    }
}

LocalDate用法

学习了LocalDate类,他适合处理日期星期问题

import java.time.LocalDate;包下

//获取当前时间
LocalDate localDate = LocalDate.now();
//输入年月日设置时间
LocalDate localDate = LocalDate.of(year,month,day);

LocalDate类具体方法 

查询年月日

 修改时间

 判断日期先后,是否是闰年,月份年份长度

 对时间进行加减操作

跑步锻炼 

跑步锻炼

 使用LoaclDate解法

import java.util.Scanner;
import java.time.LocalDate;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        LocalDate sd=LocalDate.of(2000,1,1);
        LocalDate ad=LocalDate.of(2020,10,1);
        int sum=0;
        while(true){
        
          if(sd.getDayOfMonth()==1||sd.getDayOfWeek().getValue()==1){
            sum+=2;
          }else{
            sum+=1;
          }
            if(sd.isEqual(ad)){
            System.out.println(sum);break;
           }
          sd=sd.plusDays(1);
        }
        scan.close();
    }
}

没使用LocalDate解法

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
      public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int arrMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        int runSum=0;int month=12;int week=6;
        for(int i=2000;i<=2020;i++){
            if(i==2020)month=9;//2020年只算到9月就行
            for(int j=1;j<=month;j++){
                int monthDaySum=isHowDaysMonth(i,j,arrMonth);//看这年的这个月有多少天
                for(int k=1;k<=monthDaySum;k++){
                    if((k==1)||(week==1))runSum+=2;//周日或者月初
                    else runSum+=1;
                    week++;
                    if (week>7){
                        week=1;
                    }
                   // System.out.println(runSum);
                }
            }
        }
        runSum+=2;//加上10月1的两千米
        System.out.println(runSum);
        scan.close();
    }


    public static int isHowDaysMonth(int year,int month,int arrMonth[]){
        boolean runYear = isRunYear(year, arrMonth);
//        if (runYear)System.out.println(year+"是闰年"+arrMonth[2]);
//        else System.out.println(year+"不是闰年"+arrMonth[2]);
        return arrMonth[month];
    }

    public static boolean isRunYear(int year,int arrMonth[]){
        if((year%400==0)||(((year%4==0)&&(year%100!=0)))){
            arrMonth[2]=29;
            return true;
        }
        arrMonth[2]=28;
        return false;
    }
}

next()和nextLine()的区别

2、回车符之间的区别

 其实我么发现next(),nextInt()和nextFloat()看到空格符或回车符都认为读取结束,此时不会读取回车符。
    意思就是回车符只会留在这里等待下一个可以读取回车符号的读取流来把这个回车符接收掉
 nextLine()也是以回车符为结束,并且只是以回车符结束,并且会读取回车符
 

Math.pow(n,m)为n的m次方

Math.pow(n,1.0/m)为开n的m次方

System.out.printf("%.3f",Math.pow(16.0, 1.0 / 3));保留三位小数,运算结果会四舍五入

BigInteger用法

所在包

import java.math.BigInteger

1. 赋值:

BigInteger a=new BigInteger("1");           // 字符

BigInteger b=BigInteger.valueOf(1);        // 整型

2. 运算

① add(); 大整数相加

BigInteger a=new BigInteger(“23”);

BigInteger b=new BigInteger(“34”);

a. add(b);

②subtract(); 相减

③multiply(); 相乘

④divide(); 相除取整

⑤remainder(); 取余

⑥pow(); a.pow(b)=a^b

⑦gcd(); 最大公约数

⑧abs(); 绝对值

⑨negate(); 取反数

⑩mod(); a.mod(b)=a%b=a.remainder(b);

b.bitLength()//求二进制位数

java String类型与BigInteger类型互转


        String a = "123456789";
        //String转为BigInteger
        BigInteger b=new BigInteger(a);
        //BigInteger转为String
        String c = String.valueOf(b);

蓝桥杯题 梅森素数

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
import java.math.BigInteger;
public class Main {
     public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码..
        BigInteger bigInteger=new BigInteger("2");//赋初始值
        BigInteger subtract = bigInteger.pow(11213).subtract(BigInteger.valueOf(1));//bigInteger-1
        String str=String.valueOf(subtract);//转为字符串
        System.out.println( str.substring(str.length()-100));//取最后一位

    }
}

回溯算法

解决排序,子集合问题

组合总和

class Solution {
    List<List<Integer>> res=new LinkedList<>();
    LinkedList<Integer> track=new LinkedList<>();
    int sum=0;
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
       if(candidates.length==0)return res;
         backtrack(candidates,target,0);
        return res;
    }

    void backtrack(int[] candidates, int target,int start){
         if(sum==target){
             res.add(new LinkedList<>(track));
             return ;
         }
         if(sum>target)return;
         for(int i=start;i<candidates.length;i++){
             sum+=candidates[i];
             track.add(candidates[i]);
             backtrack(candidates,target,i);
             sum-=candidates[i];
             track.removeLast();
         }
    }
}

   for(int i=start;i<candidates.length;i++){
             sum+=candidates[i];
             track.add(candidates[i]);
             backtrack(candidates,target,i);//还是从i开始,表示可复选的  
             sum-=candidates[i];
             track.removeLast();
         }

   for(int i=start;i<candidates.length;i++){
             sum+=candidates[i];
             track.add(candidates[i]);
             backtrack(candidates,target,i+1);//还是从i+1开始,表示不可复选的  
             sum-=candidates[i];
             track.removeLast();
         }


   for(int i=start;i<candidates.length;i++){
             sum+=candidates[i];
             track.add(candidates[i]);
             backtrack(candidates,target);//表示可复选的,是排序的  
             sum-=candidates[i];
             track.removeLast();
         }

全排列

单词重排

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

//回溯算法解决排序问题
public class Main {
  static List<List<Character>> res=new LinkedList<>();
        static LinkedList<Character> track=new LinkedList<>();
        static boolean userd[];//定义是否用过
        public static void main(String[] args) {
            String str="LANQIAO";
            paixu(str);
            System.out.println(res.size());
        }
        static  List<List<Character>>  paixu(String str){
            char c[]=str.toCharArray();
            Arrays.sort(c);
            userd=new boolean[str.length()];
            backtrack(c,userd);
            return res;
        }

        static  void backtrack(char c[],boolean us[]){
            if(track.size()==c.length){//达到总长度即退出
                res.add(new LinkedList<>(track));
                return;
            }
            for(int i=0;i<c.length;i++){
                if(userd[i])continue;//当前用过则跳过,因为不重复
              if(i>0&&c[i]==c[i-1]&&!userd[i-1])continue;//相等就跳过,前一个没有用过也跳过
              //进行加入和标记已经使用
                track.add(c[i]);
                userd[i]=true;
                backtrack(c,userd);//继续调用
                //回溯,撤销之前的操作
                track.removeLast();
                userd[i]=false;
            }

        }
}

题目-删除字符

解法一:使用栈

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改


public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str = sc.nextLine();
        char cs[] = str.toCharArray();
        int count = sc.nextInt();
        Stack<Character> stack = new Stack<>();
//L  A   //AN   //ANQ  //AI   //AIA
        for (int i = 0; i < cs.length; i++) {
            while (!stack.isEmpty() && stack.peek() > cs[i]&&count>0) {//元素更大的话
                stack.pop();//弹出去
                if (count--<0){
                    break;
                }
            }
            stack.push(cs[i]);//加入
        }
       StringBuilder sb=new StringBuilder();
        while(!stack.isEmpty()){
            sb.append(stack.pop());
        }
        System.out.println(sb.reverse().toString());

    }
}

解法二:使用集合(原理和栈一致)

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改


public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        char chars[]=str.toCharArray();
        int count=sc.nextInt();
        LinkedList<Character> array=new LinkedList<>();
        for (int i=0;i<chars.length;i++){
            //当后一个比前一个更小时,移除前一个,直到,后一个不在小于前一个或者已经达到指定的移除次数
            while(!array.isEmpty()&&chars[i]<chars[i-1]&&count-->0){
                array.removeLast();
            }
            array.add(chars[i]);
        }
        for (Character character : array) {
            System.out.print(character);
        }
    }
}

题目-不同字符的最小子序列

不同字符的最小子序列

 解法一:使用栈

import java.util.Scanner;
import java.util.Stack;

public class 不同字符最小 {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(smallestSubsequence(s));
    }
    public static String smallestSubsequence(String s) {
        Stack<Character> stack=new Stack<>();
        char chars[]=s.toCharArray();
        int count[]=new int[256];
        boolean inStack[]=new boolean[256];
        for (char c:chars){
            count[c]++;//统计每个字符数量
        }
        for (char c:chars){
            count[c]--;//每次遍历都少一个
            if (inStack[c])continue;//已经存在了
           while(!stack.isEmpty()&&stack.peek()>c){
               if (count[stack.peek()]==0)break;//只有一个就不弹出栈了
               inStack[stack.pop()]=false;//标为没有用过
           }
           stack.push(c);
           inStack[c]=true;
        }
        StringBuilder sb=new StringBuilder();
        while(!stack.isEmpty()){
            sb.append(stack.pop());
        }
        return sb.reverse().toString();
    }
}

解法二:使用集合(原理和栈相同)


import java.util.*;

public class 不同字符的最小子序列 {

    public static void main(String[] args) {
       Scanner sc =new Scanner(System.in);
        String s = sc.nextLine();
        System.out.println(smallestSubsequence(s));
    }
    public static  String smallestSubsequence(String s) {
        char chars[]=s.toCharArray();
        int count[]=new int[256];

        for(int i=0;i<chars.length;i++){//统计有这个字符串中的某个字符有多少个
            count[chars[i]]++;
        }
        boolean inChars[]=new boolean[256];
        LinkedList<Character> link=new LinkedList();
        for(int i=0;i<chars.length;i++){
            count[chars[i]]--;
            if (inChars[chars[i]])continue;
            while(!link.isEmpty()&&link.getLast()>chars[i]){//表示前一个元素还有
                if(count[link.getLast()]==0)break;//栈顶元素只存在一个
                inChars[link.removeLast()]=false;//删掉了,改成没添加
            }
            link.add(chars[i]);
            inChars[link.getLast()]=true;//已经添加了
        }
        String res="";
        for(char ss:link){
            res+=ss;
        }
        return res;
    }
}

动态规划

斐波那契数

数组解法-时间复杂度O(n)

    //时间复杂度为O(n)
  static int fib2(int N) {
        int dp[]=new int[N+1];
        dp[1] = dp[2] = 1;
        for (int i = 3; i <= N; i++){
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[N];
    }

 解法二:时间复杂度O(n)

根据斐波那契数列的状态转移方程,当前状态只和之前的两个状态有关,其实并不需要那么长的一个数组来存储所有的状态,只要想办法存储之前的两个状态就行了。

  //时间复杂度为O(1)
   static int fib(int n) {
        if (n < 2) return n;
        int prev = 0, curr = 1;
        for (int i = 0; i < n - 1; i++) {
            int sum = prev + curr;
            prev = curr;
            curr = sum;
        }
        return curr;
    }

对比一下两者所消耗时间

题目-零钱兑换

零钱兑换

法一:带备忘录的递归 

package LanQiaoBei.动态规划;


import java.util.Arrays;

public class 零钱兑换 {
    public static void main(String[] args) {
        int coins[]={1,3,5};
        int amount=11;
        System.out.println(coinChange(coins, amount));
    }
    //备忘录
    static int memory[];
    public static int coinChange(int coins[],int amount){
        memory=new int[amount+1];
        Arrays.fill(memory, -66);//初始化
        return dp(coins, amount);
    }
    public static int dp(int coins[],int amount){
        if (amount==0)return 0;
        if (amount<0)return -1;
        //查询备忘录,防止重复
        if (memory[amount]!=-66)return memory[amount];//已经查过
        int res=Integer.MAX_VALUE;
        for (int coin:coins){
            //计算子问题结果
            int subPro = dp(coins, amount - coin);
            if (subPro==-1)continue;//跳过,说明这个不通
            res=Math.min(res, subPro+1);//在子问题求得最优解后,每次加一
        }
       memory[amount]=res==Integer.MAX_VALUE?-1:res;//等于最大值说明一直被跳过
        return memory[amount];
    }
}

法二:dp 数组的迭代解法

int coinChange(int[] coins, int amount) {
    int[] dp = new int[amount + 1];
    // 数组大小为 amount + 1,初始值也为 amount + 1
    Arrays.fill(dp, amount + 1);

    // base case
    dp[0] = 0;
    // 外层 for 循环在遍历所有状态的所有取值
    for (int i = 0; i < dp.length; i++) {
        // 内层 for 循环在求所有选择的最小值
        for (int coin : coins) {
            // 子问题无解,跳过
            if (i - coin < 0) {
                continue;
            }
            dp[i] = Math.min(dp[i], 1 + dp[i - coin]);
        }
    }
    return (dp[amount] == amount + 1) ? -1 : dp[amount];

位运算操作

运用异或运算的性质:

一个数和它本身做异或运算结果为 0,即 a ^ a = 0;一个数和 0 做异或运算的结果为它本身,即 a ^ 0 = a

一个数异或n个数的和顺序无关

查找只出现一次的元素

int singleNumber(int []nums) {
    int res = 0;
    for (int n : nums) {
        res ^= n;
    }
    return res;
}

最小公约数、公倍数

    //返回值则是a和b的最大公约数
   static int gcd(int a,int b){
        return b == 0 ? a:gcd(b,a%b);
    }
    //返回值为a和b的最小公倍数
   static int lcm(int a, int b){
        return a*b/gcd(a,b);//最小公倍数=两数之积÷两数最大公约数
    }

二分查找

https://leetcode.cn/problems/first-bad-version/



public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
        int left = 1, right = n;
        while (left < right) { // 循环直至区间左右端点相同
            int mid = left + (right - left) / 2; // 防止计算时溢出
            if (isBadVersion(mid)) {
                right = mid; // 答案在区间 [left, mid] 中
            } else {
                left = mid + 1; // 答案在区间 [mid+1, right] 中
            }
        }
        // 此时有 left == right,区间缩为一个点,即为答案
        return left;
    }
}

高效求素数

不用从i<n开始,可以从i*i<n开始,因为之后的都是对称的

一个数只要是素数的整数倍那他不是素数。

int countPrimes(int n) {
    boolean[] isPrime = new boolean[n];
    // 将数组都初始化为 true
    Arrays.fill(isPrime, true);

    for (int i = 2; i < n; i++) 
        if (isPrime[i]) 
            // i 的倍数不可能是素数了
            for (int j = 2 * i; j < n; j += i) 
                    isPrime[j] = false;
    
    int count = 0;
    for (int i = 2; i < n; i++)
        if (isPrime[i]) count++;
    
    return count;
}

法二: 

class Solution {
    public int countPrimes(int n) {
        boolean[] isPrime = new boolean[n];
        Arrays.fill(isPrime, true);
        for (int i = 2; i * i < n; i++) 
            if (isPrime[i]) 
                for (int j = i * i; j < n; j += i) 
                    isPrime[j] = false;
        
        int count = 0;
        for (int i = 2; i < n; i++)
            if (isPrime[i]) count++;
        
        return count;
    }
}

 题目:买不到的数

对于互质的两个数a和b,其不能组成的最大整数为a*b-a-b。

正则匹配

public class 正则 {
    public static void main(String[] args) {
        // $0 表示匹配到的第一个字符(即该大写字母)
        // _$0 表示在匹配到的大写字母前加一个下划线(作为分隔符使用)
        String str="LanTaiXiaoQiao";
        String temp = str.replaceAll("[A-Z]", "_$0");
        System.out.println(temp);
        String[] split = temp.split("_");

    }
}

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

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

相关文章

Linux学习_设备树理论

Linux学习_设备树总结三种写驱动的方法资源和驱动在同一个文件里资源用 platform_device 指定、驱动在 platform_driver 实现资源用设备树指定驱动在 platform_driver 实现设备树的语法实际使用时&#xff0c;include模板小改常用属性#address-cells、#size-cells、regcompatib…

DBSCAN聚类算法及Python实现

DBSCAN聚类算法 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;可以将数据点分成不同的簇&#xff0c;并且能够识别噪声点&#xff08;不属于任何簇的点&#xff09;。 DBSCAN聚类算法的基…

告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

告诉老默我想学Spring Cloud了&#xff08;新手篇&#xff09;&#xff1a;从0到1搭建Spring Cloud项目一、前言二、如何选择版本2.1 SpringCloud 和 Spring Boot 版本选型2.1.1 Spring Cloud 版本与 Spring Boot 版本关系2.1.2 选择具体的合适版本2.2 第三方组件的版本选型三、…

SpringCloud之Eureka原理分析与实战(注册与发现)

目录 1、从本质理解服务治理思想 2、为什么选择Spring Cloud服务治理组件 3、Spring Cloud Eureka服务发现 3.1 Eureka的优势 3.2 Eureka架构组成 3.3 搭建Eureka Server 实战 3.3.1 添加依赖 3.3.2 开启服务注册 3.3.3 添加YML配置 3.3.4 访问服务 3.4 搭建Eureka …

【c语言】指针数组、数组指针

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

打造出ChatGPT的,是怎样一群人?

震惊世界的ChatGPT&#xff0c;要多少人才能开发出来&#xff1f;几百&#xff0c;还是几千&#xff1f; 答案是&#xff1a;87个人。 老实说&#xff0c;刚看到这个数字真是惊到我了&#xff0c;印象里&#xff0c;之前看媒体报道各大巨头人工智能人才储备时&#xff0c;动辄…

学编程应该选择什么操作系统?

今天来聊一个老生常谈的问题&#xff0c;学编程时到底选择什么操作系统&#xff1f;Mac、Windows&#xff0c;还是别的什么。。 作为一个每种操作系统都用过很多年的程序员&#xff0c;我会结合我自己的经历来给大家一些参考和建议。 接下来先分别聊聊每种操作系统的优点和不…

Linux服务器如何查看CPU使用率、内存占用情况

Linux服务器如何查看CPU使用率、内存占用情况 作为Linux运维工程师&#xff0c;系统维护过程以及日常工作中需要我们经常查看CPU使用率、内存使用率、带宽占用&#xff0c;从资源使用的程度分析系统整体的运行情况。 在 Linux 上查看资源使用情况有很多命令可以参考&#xff0c…

【SpringMVC】9—底层原理

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

基于springboot和ajax的简单项目 02 代码部分实现,xml文件sql语句优化 (中)

上次说到了log/log_list.html的doGetObjects()&#xff0c;其中有doFindPageObjects&#xff08;&#xff09;方法。 找到全部的日志对象&#xff0c;并且输出到div上。这里是后台的代码。 01.pojo对象&#xff0c;这里需要序列化保存。序列化的作用是保存对象到内存缓存中&am…

腾讯38K测试良心分享,熬夜整理10万字详细软件测试面试笔记

国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试的制度。 这是由于互联网IT行业的求职者太多了&#xff0c;如果考察的是清一溜的算法题和设计题&#xff0c;那么会要求面试官有极高的技术水平&#xff0c;还要花大量的时间成本和精力。 所以&#xff0c;八股文面…

普通人如何使用ChatGPT接单挣钱-第一弹

嘿&#xff0c;我是灵牧&#xff0c;今天这一期给大家带来的是普通人如何使用chatGPT挣钱的第一期 第一弹&#xff1a;通过GPT写一个Tkinter数独案例赚取&#xffe5;50 事情原委&#xff1a; 今天在接单群里看到一个Tkinter写数独的需求案例&#xff0c;想要加一个独立的弹…

Golang每日一练(leetDay0031)

目录 91. 解码方法 Decode Ways &#x1f31f;&#x1f31f; 92. 反转链表 II Reverse Linked List II &#x1f31f;&#x1f31f; 93. 复原 IP 地址 Restore IP Addresses &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练…

pdf转excel表格怎么做?这3种方法简单又方便

在日常工作和生活中&#xff0c;我们经常需要转换不同格式的文件&#xff0c;比如将PDF转换为Excel表格。虽然转换过程看似简单&#xff0c;但实际上要想转换好&#xff0c;选择一款专业的PDF转换器是非常必要的。今天&#xff0c;我将为大家介绍几款值得推荐的PDF转换器&#…

一文全解经典机器学习算法之线性回归(关键词:回归分析、最小二乘法、极大似然估计、梯度下降法、逻辑回归、对数几率、线性判别分析)

文章目录一&#xff1a;线性回归基本概念&#xff08;1&#xff09;回归分析&#xff08;2&#xff09;线性回归二&#xff1a;线性回归确定参数的方法&#xff08;1&#xff09;最小二乘法A&#xff1a;代数求法B&#xff1a;矩阵求法&#xff08;主要使用&#xff09;&#x…

国产大模型狂飙,谁能率先做出第一个中国版GPT

热火烹油的大模型赛道打起了“嘴仗”。 搜狗前CEO王小川评价百度创始人李彦宏的采访发言称&#xff1a;“你们采访的可能是平行世界的他&#xff0c;不是我们这个世界里的。” 而针对王小川的评论&#xff0c;百度集团副总裁、搜索平台负责人肖阳又回应道&#xff1a;“王小…

JavaSE补充 | 网络编程

目录 一&#xff1a;网络编程 1. 网络编程概述 2. 网络通信要素 3. 传输层协议&#xff1a;TCP 与 UDP 协议 4. 网络编程 API 5. TCP网络编程 6. UDP 网络编程 7. URL编程 一&#xff1a;网络编程 1. 网络编程概述 Java是 Internet 上的语言&#xff0c;它从语言级上提…

【redis】单线程 VS 多线程(入门)

【redis】单线程 VS 多线程&#xff08;入门&#xff09; 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#…

Python之数据库操作(连接数据库,增删改查操作,易错点理解)

文章目录 前言一、Python之数据库操作二、pymysql 安装三、pymysql 包引入 连接数据库创建游标执行sql数据 - 增删改查要获取查询结果数据关闭游标&#xff0c;关闭数据库连接总结前言 记录&#xff1a;Python操作数据库的步骤&#xff0c;不容易理解的地方。 一、Python之数据…

开局一张图,构建神奇的 CSS 效果

假设&#xff0c;我们有这样一张 Gif 图&#xff1a; 利用 CSS&#xff0c;我们尝试来搞一些事情。 图片的 Glitch Art 风 在这篇文章中 --CSS 故障艺术&#xff0c;我们介绍了利用混合模式制作一种晕眩感觉的视觉效果。有点类似于抖音的 LOGO。 像是这样&#xff1a; 假设…