//最长公共子序列

import java.util.*;
public class Main {
public static void main(String[] args){
int ans = maxlen("abc","sdsdabc");
System.out.println(ans);
}
static int maxlen(String s1,String s2){
if(s1.length()==0||s2.length()==0) return 0;
if(s1.charAt(0)==s2.charAt(0)) return maxlen(s1.substring(1),s2.substring(1))+1;
else
return Math.max(maxlen(s1.substring(1),s2), maxlen(s1,s2.substring(1)));
}
}

//不放回取球问题
import java.util.*;
public class Main {
public static void main(String[] args){
int ans = f(2,1);
System.out.println(ans);
}
//假设有一个带颜色的球,全局会产生它的选与不选两种情况
static int f(int m,int n){
//注意顺序
if(n==0) return 1;

if(m==n)return 1;
return f(m-1,n-1)+f(m-1,n);
}
}

//全排列问题
import java.util.*;
public class Main {
public static void main(String[] args){
char[] s1 = "abc".toCharArray();
f(s1,0);
}
static void f(char[] s1,int k){
if(k==s1.length-1){
for(int i=0;i<s1.length;i++){
System.out.print(s1[i]+" ");

}
System.out.println();
}
for(int i=k;i<s1.length;i++){
{char temp =s1[i]; s1[i] = s1[k]; s1[k] = temp; }
f(s1,k+1);
{char temp =s1[i]; s1[i] = s1[k]; s1[k] = temp; }
}
}
}

常见递归问题 java的更多相关文章

  1. 常见排序的JAVA实现和性能测试

    五种常见的排序算法实现 算法描述 1.插入排序 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重 ...

  2. 数组排序、递归——(Java学习笔记二)

    升序:      选择排序:         选定一个元素,一次和后面的元素相比较,如果选定的元素大雨后面的比较元素,就交换位置         先出现最小值,最后出现最大值. public stat ...

  3. 关于单链表的增删改查方法的递归实现(JAVA语言实现)

    因为在学习数据结构,准备把java的集合框架底层源码,好好的过一遍,所以先按照自己的想法把单链表的类给写出来了; 写该类的目的: 1.练习递归 2.为深入理解java集合框架底层源码打好基础 学习的视 ...

  4. 二叉树的递归,非递归遍历(java)

    import java.util.Stack; import java.util.HashMap; public class BinTree { private char date; private ...

  5. 算法训练 瓷砖铺放 【递归】java

      算法训练 瓷砖铺放   时间限制:1.0s   内存限制:512.0MB     锦囊1 锦囊2 锦囊3 问题描述 有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为 ...

  6. 算法学习 八皇后问题的递归实现 java版 回溯思想

    1.问题描述 八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或 ...

  7. 2020最常见的200+Java面试题汇总(含答案解析)

    前言 2020年快要结束了,很多朋友问题,有没有整理今年的一些面试题,最近抽时间整理了一份Java面试题.或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信足以应对目前市面上绝大部分的 ...

  8. 全排列算法--递归实现(Java)

    求一个n阶行列式,一个比较简单的方法就是使用全排列的方法,那么简述以下全排列算法的递归实现. 首先举一个简单的例子说明算法的原理,既然是递归,首先说明一下出口条件.以[1, 2]为例 首先展示一下主要 ...

  9. 二叉树的递归实现(java)

    这里演示的二叉树为3层. 递归实现,先构造出一个root节点,先判断左子节点是否为空,为空则构造左子节点,否则进入下一步判断右子节点是否为空,为空则构造右子节点. 利用层数控制迭代次数. 依次递归第二 ...

随机推荐

  1. 论 Java 中的内存分配

    Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...

  2. hbase优化之region合并和压缩

    HBASE操作:(一般先合并region然后再压缩) 一 .Region合并: merge_region   'regionname1','regionname2' ,'true'  --true代表 ...

  3. 最长周长三角形 O(nlogn)

    题意   有根棍子,棍子的长度为.想要从中选出三根棍子组成周长尽可能长的三角形.请输出最大的周长,若无法组成三角形输出0. 思路   很容易想到采用三重循环来枚举所有三角形,复杂度为.   更好的办法 ...

  4. uva11400 动态规划

    没种电压灯泡要么全换,要么不换.状态d(i)表示前i种灯泡的最低价格. 转移方程: dp[i]=min(dp[i],dp[j]+(s[i]-s[j])*d[i].c+d[i].k); AC代码: #i ...

  5. hdu1394 分治 or 线段树

    利用分治求一次逆序数,然后每次把第一个元素放到末尾,设该交换元素的值为x,设上一次求得的逆序数为y,那么此时的逆序数等于y - x + (n - x - 1),减去x是因为x作为第一个元素,其后共有x ...

  6. 洛谷P3381 - 【模板】最小费用最大流

    原题链接 题意简述 模板题啦~ 题解 每次都以费用作为边权求一下最短路,然后沿着最短路增广. Code //[模板]最小费用最大流 #include <cstdio> #include & ...

  7. flask项目开发中,遇到http 413错误

    在flask项目中,上传文件时后台报http 413 Request Entity Too Large 请求体太大错误! 解决的2种方法: 1.在flask配置中设置 MAX_CONTENT_LENG ...

  8. WEB开发-动态验证码

    1.基于Python实现,用到了django后台处理,刷新验证码功能,其他语言大同小异 2.登录界面 login.html <!DOCTYPE html> <html lang=&q ...

  9. 阻止微信浏览器/QQ浏览器长按弹框“在浏览器打开”

    这个弹框实际上等同于PC环境下的鼠标右键的弹框,因此只要禁止页面的弹框事件就能完美屏蔽该弹框对我们功能带来的影响.程序代码如下: document.oncontextmenu=function(e){ ...

  10. Link/cut Tree

    Link/cut Tree 一棵link/cut tree是一种用以表示一个森林,一个有根树集合的数据结构.它提供以下操作: 向森林中加入一棵只有一个点的树. 将一个点及其子树从其所在的树上断开. 将 ...