IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【思特奇杯·云上蓝桥-算法集训营】第3周 -> 正文阅读

[数据结构与算法]【思特奇杯·云上蓝桥-算法集训营】第3周

1…斐波那契数
在这里插入图片描述

import java.util.Scanner;

public class t_1 {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        int n=scanner.nextInt();
        System.out.println(f(n));
    }
    public static int f(int n){
        if(n==0){
            return 0;
        }else if(n==1){
            return 1;
        }else {
            return f(n-1)+f(n-2);
        }
    }
}

2.第 N 个泰波那契数
在这里插入图片描述

import java.util.Scanner;

public class t_2 {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        int n=scanner.nextInt();
        System.out.println(f(n));
    }
    public static int f(int n){
        if(n==0){
            return 0;
        }else if(n==1||n==2){
            return 1;
        }else {
            return f(n-1)+f(n-2)+f(n-3);
        }
    }
}

3.爬楼梯
在这里插入图片描述

import java.util.Scanner;

public class t_3 {
    public static int num;
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        int n=scanner.nextInt();
        f(n);
        System.out.println(num);
    }
    public static void f(int n){
        if(n>0){
            f(n-1);
            f(n-2);
        }
        if(n==0){
            num++;
        }
    }
}

4.使用最小花费爬楼梯
在这里插入图片描述


public class t_4 {
    public static int[] cost = {1, 100, 1, 1, 1, 100, 1, 1, 100, 1};
    public static void main(String[] args) {
        System.out.println(f(cost));
    }
    public static int f(int[] cost) {
        int n = cost.length;
        int prev = 0, curr = 0;
        for (int i = 2; i <= n; i++) {
            int next = Math.min(curr + cost[i - 1], prev + cost[i - 2]);
            prev = curr;
            curr = next;
        }
        return curr;
    }
}

5.买卖股票的最佳时机
在这里插入图片描述

public class t_5 {
    public static int[] cost = {7,6,4,3,1};
    public static void main(String[] args) {
        System.out.println(f(cost));
    }
    public static int f(int[] cost) {
        int jmin=0,imin=0;
        for(int i=0;i<cost.length;i++){
            for(int j=i+1;j<cost.length;j++){
                jmin=Math.max(cost[j]-cost[i],jmin );
            }
            imin=Math.max(jmin,imin);
        }
        if(imin<0){
            return 0;
        }
        return imin;
    }
}

6.最长公共子序列
在这里插入图片描述

import java.util.Scanner;

public class t_6 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String text1=scanner.next();
        String text2=scanner.next();
        System.out.println(f(text1,text2));
    }
    public static int f(String text1, String text2) {
        int m = text1.length(), n = text2.length();
        int[][] dp = new int[m + 1][n + 1];
        for (int i = 1; i <= m; i++) {
            char c1 = text1.charAt(i - 1);
            for (int j = 1; j <= n; j++) {
                char c2 = text2.charAt(j - 1);
                if (c1 == c2) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                } else {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
                }
            }
        }
        return dp[m][n];
    }
}

7.杨辉三角
在这里插入图片描述

import java.util.Scanner;
public class t_7 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        System.out.println(f(n));
    }
    public static long f(int n){
        long x=0l;
        long y[]=new long[50010];
        y[1]=1;
        if(n==1)    return 1;
        long cur=0l;
        for(int i=2;i<50000;i++){
            cur+=2*i-1;
            for(int j=i;j>=1;j--){
                y[j]=y[j-1]+y[j];
                if(y[j]==n) {
                    x = cur;
                }
                cur--;
            }
            if(x!=0){
                return x;
            }
        }
        return (n+1)*n/2+2;
    }
}

8.节点选择
在这里插入图片描述

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class t_8{
    private static int[][] dp;
    private static List<List<Integer>> vertex = new ArrayList<>();
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();
        dp = new int[n][2];
        for (int i = 0; i < n; i++) {
            dp[i][1]=scanner.nextInt();
            vertex.add(new ArrayList<Integer>());
        }
        scanner.nextLine();
        for (int i = 0; i < n - 1; i++) {
            final String[] ab =scanner.nextLine().split(" ");
            int a = Integer.parseInt(ab[0]) - 1;
            int b = Integer.parseInt(ab[1]) - 1;
            vertex.get(a).add(b);
            vertex.get(b).add(a);
        }
        scanner.close();
        dfs(0, -1);
        System.out.println(Math.max(dp[0][0], dp[0][1]));
    }

    private static void dfs(int root, int pre) {
        List<Integer> temp = vertex.get(root);
        for (int i = 0; i < temp.size(); i++) {
            if (temp.get(i) != pre) {
                dfs(temp.get(i), root);
                dp[root][1] += dp[temp.get(i)][0];
                dp[root][0] += Math.max(dp[temp.get(i)][0], dp[temp.get(i)][1]);
            }
        }
    }
}

9.耐摔指数
在这里插入图片描述

import java.util.Scanner;

public class t_9 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int [] x=new int [1000];
        int sum=1;
        for(int i=0;sum<n;i++){
            sum=i+sum;
            x[i]=sum;
        }
        sum=1;
        int k=0;
        for(int i=0;sum<n;i++){
            sum=x[i]+sum;
            k++;
        }
        System.out.println(k);
    }
}

10.K好数
在这里插入图片描述

import java.math.BigInteger;
import java.util.Scanner;

public class t_10 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int k=scanner.nextInt();
        int l=scanner.nextInt();
        System.out.println(f(k,l));
    }
    public static BigInteger f(int k, int l){
        int [][] array = new int[l][k];
        for (int i = 1; i < k; i++) {
            array[0][i] = 1;
        }
        for (int i = 1; i < l; i++) {
            for (int j = 0; j < k; j++) {
                for (int j2 = 0; j2 < k; j2++) {
                    if ((j != j2 + 1) && (j != j2 - 1)) {
                        array[i][j] = (array[i][j] + array[i-1][j2]) % 1000000007;
                    }
                }
            }
        }
        BigInteger sum = new BigInteger("0");
        for (int i = 0; i < k; i++) {
            sum = sum.add(new BigInteger(Integer.toString(array[l - 1][i])));
        }
        return sum.mod(new BigInteger("1000000007"));
    }
}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:09:15  更:2022-01-24 11:11:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:33:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码