算法
Mr.Huang Tony
这个作者很懒,什么都没留下…
展开
-
动态规划学习
动态规划的代码学习import java.util.HashSet;import java.util.List;import java.util.ArrayList;public class DynamicProgramming { //打印字符串的子串 public static List<String>substring(String s) { char[] str=s.toCharArray(); List<Stri原创 2021-07-25 21:16:24 · 151 阅读 · 0 评论 -
用动态规划来解《最长公共子序列》、《最长公共子串》、《最长递增子序列》
Hello,爱客们好,我是Tony欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!最长公共子序列编程题给定两个字符串str1和str2,返回两个字符串的最长公共子序列举例str1=“1A2C3D4B56”,str2=“B1D23CA45BA”"123456"或者“12C4B6”都是最长公共子序列,返回哪一个都行思路这道题可以用经典的动态规划来做,...原创 2020-02-18 20:22:08 · 174 阅读 · 0 评论 -
N皇后问题(普通递归、回溯、位运算)
哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!编程题N皇后问题是指在N*N的棋盘上摇摆N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上。给定一个整数n,返回n皇后的摆法有多少种?举例n=1,返回1n=2或3,2皇后和3皇后问题怎么摆都不行,返回0n=8,返回92思路如果在(i,j)位置(第i行第j列放置了...原创 2020-02-18 18:58:08 · 264 阅读 · 0 评论 -
字符串中数字子串的求和
哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!编程题:给定一个字符串str,求其中全部数字串所代表的的数字之和。要求1、忽略小数点字符,例如“A1.3”其中包含两个数字1和3.2、如果紧贴数字字串的左侧出现字符“-”,当连续出现的数量为奇数时,则数字为负,连续出现的数量为偶数,则数字视为正。例如"A-1Bc–12",其中包...原创 2020-02-18 18:31:58 · 1112 阅读 · 0 评论 -
《汉诺塔》进阶内容算法
哈喽,大家好,我是Tony:欢迎大家访问我的个人主页:Tony’s Blog,让我们一起站在巨人的肩膀之上!这篇博客将以《汉诺塔》为基础进行汉诺塔进阶:编程题给定一个整形数组arr,其中只含有1,2和3,代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,arr[i]的值代表第i+1个圆盘的位置。比如,arr=[3,3,2,1],代表第一个圆盘在右柱上、第2个圆盘在右柱上、第3个...原创 2020-02-13 19:37:26 · 387 阅读 · 0 评论 -
从《汉诺塔》来讲递归算法
哈喽,大家好,我是Tony:这篇博客将以《汉诺塔》为例进行递归编程:编程题给定一个整数n,代表汉诺塔游戏中从小到大放置的n个圆盘,假设开始时所有的圆盘都放到左边的桌子上,想按照汉诺塔游戏规则把所有的圆盘都移到右边的柱子上。实现函数打印最优移动轨迹举例n=1时,打印:move from left to rightn=2时,打印:move from left to midmove ...原创 2020-02-12 20:37:29 · 325 阅读 · 0 评论 -
以《换钱的方法数》来学动态规划及其优化
动态规划初步入门近期在做程序员面试指南,里面有一道《换钱的方法数》问题,我觉得对理解动态规划和递归优化搜索很有帮助。题目给定数组arr,arr中所有的值都为正数且不重复。每一个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数CoinNum代表要找的钱数,求换钱的有多少种方法。举例arr=[5,10,25,1],CoinNum=0;组成0元的方法有1种,就是所有货币都...原创 2019-12-27 09:35:03 · 257 阅读 · 0 评论