算法学习(java)
ArchitectDream
good good study,day day up
展开
-
算法学习之插入排序
插入排序的基本思想:向后遍历把遍历到的元素与前面每一个元素比较 package StudentSufa;/*直接排序 */public class InsertSort { public static void main(String[] args){ int[] a={49,38,65,97,23,22,76,1,5,8,2,0,-1}; /...原创 2018-11-12 20:29:01 · 116 阅读 · 0 评论 -
算法学习——动态规划 例题:矩阵最短路径(java)
给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径的和,返回所有的路径中的最小的路径的和。如果给定的m如大家看到的样子,路径1,3,1,0,6,1,0是所有路径中路径和最小的,所以返回12.1 3 5 98 1 3 45 0 6 18 8 4 0思路:式子: m dp1 3 5 9 ...原创 2018-12-28 21:15:06 · 3134 阅读 · 0 评论 -
leetcode:54. 螺旋矩阵(java)
package LeetCode;import java.util.ArrayList;import java.util.List;/*给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,...原创 2018-12-18 21:22:17 · 481 阅读 · 0 评论 -
算法学习——动态规划 例题:找零钱问题(java)
给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim代表要找的钱数,求还钱有多少种方法动态规划:首先我们设一个二维矩阵dp[arr.length][aim+1]dp[i][j]就是arr[0...i]钱组成j的方法种数public class DTGH_ZhaoLingQian { public int...原创 2018-12-29 15:16:32 · 3766 阅读 · 0 评论 -
算法学习——动态规划 例题:最长递增子序列(java)
给定数组arr,返回arr的最长递增子序列长度。比如arr=[2,1,5,3,6,4,8,9,7]最长递增子序列为,[1,3,4,8,9] ,所以返回这个子序列的长度为5,给定数组arr,返回arr的最长所以返回这个子序列的长度。比如arr=[2,1,5,3,6,4,8,9,7]最长递增子序列[1,3,4,8,9],所以返回这个子序列的长度为5arr=[2,1,5,3,6,4,8,9,7...原创 2018-12-29 15:17:56 · 4153 阅读 · 0 评论 -
算法学习——动态规划 例题:最长公共子序列问题(java)
题目:给定两个字符串str1和str2,返回两个字符串的最长公共子序列.例如,str1="1A2C3D4B56",str2="B1D23CA45B6A","123456"或者"12C4B6'动态规划思想:先用一个比,左边加一个字符右面加一个字符依次比较dp[i][j]dp[i][j]意思就是str1从0到i的字符和str2从0到j的公共子序列的个数关系表达式思路:如果str1[...原创 2018-12-30 16:41:07 · 1075 阅读 · 0 评论 -
算法学习——动态规划 例题:背包问题(java)
题目:一个背包有一定的承重W,用N件物品,每件都有自己的价值,记录在数组V中, 也都有自己的重量,记录在数组W中,每件物品只能选择要装入的背包还是不装入背包 , 要求在不超过背包承重的前提下选出物品的总价值最大动态规划思想:假设物品从1到N,一件一件物品考虑是否加入背包递推关系式: 1) j<w(i) V(i,j)=V(i-1,j) 2) j>=w(i) V(...原创 2018-12-30 16:44:43 · 846 阅读 · 0 评论 -
算法学习——动态规划 例题:两字符串转换权最小问题(java)
题目 :给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入, 删除和替换一个字符的代价。返回将str1编辑成str2的最小代价。比如,str1="abc",str2="adc",ic=5,dc=3,rc=2.从"abc"编辑成adc, 吧b替换成d是代价最小的所以返回2.再比如,str1="abc",str2="adc",ic=5,dc=3,rc=100.从abc编...原创 2018-12-31 17:41:03 · 1911 阅读 · 0 评论 -
相关String的算法学习(例题:判断字符的变形词)
package BATZTSuanfa.String;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/* 给定两个字符串str1和str2 ,如果str 1和str2中出现的字符种类样且每种字符出现的次数也一样 ,那么str1与str2互为变形词,请实现函数判断两个字符串...原创 2019-03-08 17:27:57 · 123 阅读 · 0 评论 -
算法学习——动态规划 例题:最长公共子序列问题(java)详解过程
package DTGH;/* 最长公共子序列 一个给定序列的子序列是在该序列中删去若千元素后得到的序列 给定两个序列X和Y ,当另一-序列Z既是X的子序列又是Y的子序列时,称Z是序 列X和Y的公共子序列 最长公共子序列,. X=(A,B,C,B,D,A,B) Y= (B,D,C,A,B, A)●(B,C,B,A)...原创 2019-03-21 21:10:50 · 1092 阅读 · 0 评论 -
算法学习——动态规划 例题:上台阶问题(java)
动态规划经典例题之上台阶问题:n阶台阶,一个人每次上一级或者两级台阶,问有多少种走完n级台阶的方法 动态规划思路的由来就是 暴力法——>记忆搜索法——>动态规划 我就是按照这个顺序来进行学习的希望对大家有所帮助 先是经典简单的暴力法解决:public class DTGH_UpTaiJie { /* 经典解法:暴力法 ...原创 2018-12-28 21:13:13 · 2250 阅读 · 0 评论 -
分治学习之循环比赛(java)
package FZ;/*-----------分治NBA 循环比赛n支队伍 n-1天内比完例如:骑士1勇士2湖人3火箭4公牛5马刺6篮网7等等8结果:1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 46 5 8 7 2 1 4 37 8 5 6 3 4...原创 2018-12-18 08:44:37 · 435 阅读 · 0 评论 -
java算法学习之二分法插入排序
思想就是在插入排序的后 前面比较时进行二分法排序 package StudentSufa;/*二分法插入 */public class BinaryInsertSort { public void sort(int[] a){ for (int i = 1; i <a.length ; i++) { //与后面做比较的值(待插入到...原创 2018-11-12 20:31:25 · 752 阅读 · 0 评论 -
java算法之希尔排序学习
package StudentSufa;/*希尔排序思想:改变增量不同的来排序//不稳定 */public class HeerSort { public static void main(String[] args) { int[] a={49,38,44,2,0,28,1,-9,7,2,5,23,12,99,76}; /* 增...原创 2018-11-12 20:33:04 · 121 阅读 · 0 评论 -
递归学习之数字倒向输出
package recursionDG;import java.util.Scanner;public class DaoShuNumber { /* 输入一个数字使其倒向输出 */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); ...原创 2018-11-23 20:54:49 · 306 阅读 · 0 评论 -
java实现八皇后以及n皇后问题详解
今天遇到一个非常有意思的问题就是八皇后问题 ,本人是一名菜鸟所以被难到了;进过学习以及自己琢磨研究出来一套解决方案但是时间复杂度有点高 希望各位大佬帮忙看看有办法解决吗 或者我这有什么错请指出来谢谢 //八皇后问题/*在一个8*8的棋盘上放置8个皇后,不允许任何两个皇后在棋盘的同一行、同一列和同一对角线上。1)对8 x 8的二维数组上的某点a[i][j](0<=i,j&l...原创 2018-11-07 21:47:05 · 4726 阅读 · 4 评论 -
经典递归问题学习之汉诺塔(河内塔)
package recursionDG;public class HanNoTa { private int cont=1; public void hannota(int n,char from,char helper,char to){ if (n==1){ move(1,from,to); }else{ ...原创 2018-11-25 17:41:56 · 322 阅读 · 0 评论 -
递归学习之欧几里德递归算法学习java
package recursionDG;public class Gcd { /* 两个数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数 最大公约数 递归思想 输入两个数,求最大公约数 */ //(m>n)m和n的最大公约数=n和m%n 的最大公约数 //36 24 (12)= 24和12 = 12和0 public ...原创 2018-11-25 18:13:44 · 245 阅读 · 0 评论 -
算法学习之穷举--泊松分酒详细代码加注释
1.穷举思想简述 穷举法可谓是计算机程序设计中最经典也最为简单的一种算法,其依赖于计算机强大的计算能力来穷尽每一种可能存在的情况,从而达到问题的求解。另外,该法也被称之为暴力求解法;实际上如果你愿意的话,几乎大多数问题都可以转换为穷举求解的过程,但因为穷举算法的效率不高,所以它一般被用于一些没有明显规律可循的场合。 2.算法的执行流程 在使用穷举法时,首先是明确问题答案的范围,以便在...原创 2018-11-26 20:17:55 · 871 阅读 · 0 评论 -
背包问题(贪心java)
经过我不断测试发现确实不是最优解 package TX;import java.util.Arrays;public class GreedyPackage { public void greedyPackage(int maxWeight,int[] weight,int[] val) { int n=weight.length; //性价...原创 2018-12-16 17:01:15 · 464 阅读 · 0 评论 -
分治学习之棋盘覆盖问题(java)
package FZ;/*2 0 3 32 2 1 34 1 1 14 4 1 1棋盘一个特殊点用L型的棋子进行覆盖//进行分治法计算 然后分成更小的 比如4分成2,2,2,2 的矩阵 然后进行继续分 分成1,1,1,1的标明其他非特殊点 */public class ChessBoradProblem { private int[][] board;//棋盘 ...原创 2018-12-18 08:43:38 · 395 阅读 · 0 评论 -
java算法————选择法 介绍以及注解
/** 选择法排序* 每一次把所有的数遍历一遍并找出其中最小的放到最前面* 数组中没有重复的* 遍历{9,4,2,6,7,3,10,33,88,1,17}*/public class SelectSort { int min=0; int tap=0;public void selectSort(int[] arry){ for(int i=0;i...原创 2018-05-27 11:06:40 · 1044 阅读 · 0 评论