zoukankan      html  css  js  c++  java
  • 蓝桥杯-递归常用的几种套路

    求最大公共子序列的大小

    public class 最大公共子序列 {
        public static void main(String[] args) {
            int k=f("abc","adfefexcgfd");
            System.out.println(k);
        }
    
        private static int f(String s1, String s2) {
            
            if(s1.length()==0||s2.length()==0) return 0;
            
            if(s1.charAt(0)==s2.charAt(0))
                return f(s1.substring(1),s2.substring(1))+1;
            else
                return Math.max(f(s1.substring(1),s2),f(s1,s2.substring(1)));
        }
    }

    字母数组或数字的全排列

    /*
    A B C 
    A C B 
    B A C 
    B C A 
    C B A 
    C A B 
     */
    public class 全排列 {
        public static void main(String[] args) {
            
            char[] data="123456789".toCharArray();
            f(data,0);
        }
    
        private static void f(char[] data, int k) {
            
            if (k==data.length) {
                for (int i = 0; i < data.length; i++) {
                    System.out.print(data[i]+" ");
                }
                System.out.println();
            }
            
            for (int j = k; j < data.length; j++) {
                { char t=data[k];data[k]=data[j];data[j]=t; }//试探
                f(data,k+1);//递归
                { char t=data[k];data[k]=data[j];data[j]=t; }//回溯
            }
        }
    }

    超大的数字和小数的四舍五入(e,zheigehediguimeiguanxi)

    import java.math.BigDecimal;
    import java.math.BigInteger;
    
    public class 大数和分数 {
        public static void main(String[] args) {
            
            //大的数
            BigInteger bi=BigInteger.valueOf(1);
            BigInteger sum=BigInteger.valueOf(0);
            for (int i = 0; i < 64; i++) {
                sum=sum.add(bi);
                bi=bi.multiply(BigInteger.valueOf(2));
            }
            System.out.println(sum);
            
            //小数的四舍五入
            double d=1234.546556;
            BigDecimal bd=new BigDecimal(d);
            double d1=bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(d1);
        }
    }
  • 相关阅读:
    ByteBuffer的slice()方法
    Kafka多个消费者的小例子
    设计模式之迭代器模式
    设计模式之责任链模式
    @ComponentScan的scopeResolver属性详解
    ES中的文档更新
    ElasticSearch学习:安装
    强、软、弱、虚四大引用示例
    20个有用的小片段
    spring mvc 执行流程
  • 原文地址:https://www.cnblogs.com/gx-143/p/6159424.html
Copyright © 2011-2022 走看看