蓝桥杯java常用算法模版

蓝桥杯笔记:

阶乘计算

N! 后面恰好有几个0,就拿N一直除以5知道N<0,然后得到的值加一起,

例如:后面有两个0 就是

10/5=2 2/5=0 2+0=2 so 10! 后面有两个0

40/5=8 8/5=1 8+1=9 so 40! 后面有九个0

int 2* 32 >10*9
long 2* 64>10*18

eclipse 代码补全 alt + /

求最大公约数以及最小公倍数

public class LCM {
     
      
    // 计算最大公约数的方法  
    public static int gcd(int a, int b) {
     
        if (b == 0) {
     
            return a;  
        }  
        return gcd(b, a % b);  
    }  
      
    // 计算最小公倍数的方法  
    public static int lcm(int a, int b) {
     
        return (a * b) / gcd(a, b);  
    }  
      
    public static void main(String[] args) {
     
        int a = 12;  
        int b = 15;  
        int lcmResult = lcm(a, b);  
 
    }  
}

BFS算法框架

// 计算从起点 start 到终点 target 的最近距离
int BFS(Node start, Node target) {
   
    Queue<Node> q; // 核心数据结构
    Set<Node> visited; // 避免走回头路
    
    q.offer(start); // 将起点加入队列
    visited.add(start);

    while (q not empty) {
   
        int sz = q.size();
        /* 将当前队列中的所有节点向四周扩散 */
        for (int i = 0; i < sz; i++) {
   
            Node cur = q.poll();
            /* 划重点:这里判断是否到达终点 */
            if (cur is target)
                return step;
            /* 将 cur 的相邻节点加入队列 */
            for (Node x : cur.adj()) {
   
                if (x not in visited) {
   
                    q.offer(x);
                    visited.add(x);
                }
            }
        }
    }
    // 如果走到这里,说明在图中没有找到目标节点
}//bfs先找到的一定是最短

在这里插入图片描述

dfs/回溯算法框架

回溯算法看labuladong总结组合和排序
result = []
def backtrack(路径, 选择列表):
    if 满足结束条件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值