- 博客(15)
- 收藏
- 关注
原创 2020-08-28
最长回文字串//最长回文字串public class Test7 { public static String palindrome(String s,int l, int r) { while(l>=0 && r<s.length()&&s.charAt(l)==s.charAt(r)) { l--;r++; } return s.substring(l+1, r); } public static String longestPal
2020-08-28 11:05:33 112
原创 2020-08-28
建二叉搜索树import java.util.Scanner;;class TreeNode{ int val =0; TreeNode left=null; TreeNode right=null; TreeNode(int val){ this.val=val; }}public class Tree { //******************************************** public static TreeNode sortedTree(int[]
2020-08-28 10:38:11 133
原创 2020-08-28
凑零钱import java.util.Arrays;;//凑零钱问题(动态规划),至少需要多少枚//coins零钱面值,amount宗金额//dp[i]=x表示当目标金额为i时。至少需要x枚硬币public class Test6 { public static int coinChange(int[] coins, int amount) { int[] dp = new int[amount+1]; Arrays.fill(dp, amount+1); dp[0]=0; f
2020-08-28 10:32:44 163
原创 2020-08-28
链表反转import java.util.Scanner;class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class lianbiao { //************************************************************* public static ListNode
2020-08-28 10:30:40 97
原创 基数排序
基数排序非常适用于整数排序(尤其是非负整数)依次对个位数、十位数、百位数、千位数、万位数…进行排序(从低位到高位)个位数、十位数、百位数…的取值范围都是固定的0~9,可以使用计数排序对它们进行排序public class RadixSort { protected void sort(int[] array) { int max=array[0]; for(int i=1; i<array.length; i++) { if(array[i]>max) { m
2020-07-27 15:08:05 84
原创 计数排序
计数排序核心思想:统计每个整数在序列中出现的次数,进而推导每个整数在有序序列中的索引。(只能对整数进行排序)1.原始计数排序:开辟内存空间,统计每个整数出现的次数(原数组元素作为索引)。然后遍历该内存空间,进而实现原数组排序。(不能对负数排序,且浪费内存空间)2 .改进的基数排序:开辟的内存空间(大小为整数范围)统计的是累计次数。然后从从后往前遍历原数组(注:这里遍历的原数组),根据该元素的累计次数,可以直接得到它在排序数组中位置。(最好、最坏、平均时间复杂度:O(n+k) k为整数的范围; 属
2020-07-26 22:37:23 99
原创 希尔排序
希尔排序希尔排序的逆序对的数量逐渐在减少,而插入排序的复杂度与逆序对的数量有关( 逆序对越少,复杂度越小),所以希尔排序底层一般使用插入排序对每一列进行排序。把序列看作是一个矩阵,分为m列,逐略进行排序m = n / (2k k=1,2,…; n为序列长度),直到m逐渐减为1当m=1时,整个序列将完全有序。public class ShellSort { protected void sort(int[] array) { int size=array.length; int jmp
2020-07-26 17:56:57 113
原创 快速排序
快速排序快速排序的本质:逐渐将每一个元素都转换成轴点元素从序列中选择一个轴点元素(pivot)假设每次随机选择一个元素为轴点元素利用pivot将序列分割成2个序列将小于等于pivot的元素放在pivot前面将大于pivot的元素放在pivot后面对子序列进行1、2操作直到不能分割(子序列只剩下1元素)public class quickSort{ protected void sort(int[] array) { int l = 0; int r = array
2020-07-26 16:25:55 76
原创 排序算法
优化的冒泡排序通过记录每轮循环最后一次交换的位置,实现优化:public void bubble(int[] arr) { int i,j,tmp,sortedIndex; for(i=arr.length-1;i>0;i--) { sortedIndex=0; for(j=0;j<i;j++) { if(arr[j+1]<arr[j]) { tmp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; so
2020-07-21 23:08:26 76
转载 判断数组中是否存在若干元素和为目标值问题
判断数组中是否存在若干元素和为目标值问题视频地址将其变成选和不选问题找到递归出口递归版本public class Test { public static boolean rec_subset(int[] arr, int len,int s) { if(s==0) return true; else if(len==0) return arr[0]==s; else if(arr[len]>s) return rec_subset(arr, len-
2020-07-17 17:25:45 730
转载 求一个数组中非相邻元素和的最大值问题(动态规划)
求一个数组中非相邻元素和的最大值问题视频地址1.递归版本public class Test { public static int rec_opt(int[] arr, int len) { if(len==0) return arr[0]; else if(len==1) return Math.max(arr[0], arr[1]); else return Math.max(rec_opt(arr, len-2)+arr[len], rec_opt(arr,
2020-07-17 16:04:03 1270 1
转载 动态规划题目
/动态规划的题目:给定不同任务的起止时间及其报酬(任务时间会有重叠),选定酬劳之和最高的任务组合,且同一时间只能接一个任务/出处及视频讲解i为任务编号,vi为任务i的报酬,prev(i)为选了任务i后,前面能选的最近的前一个任务。opt(i)为最优解。import java.util.Scanner;class job{ int start; int end; int payment; }public class DPMaxSalary { public static void m
2020-07-17 12:02:04 102
原创 Leetcode 5:最长回文子串(Longest Palindromic Substring)
Leetcode 5:最长回文子串(Longest Palindromic Substring)**主要思想:**一旦在一个回文串的两端对称地加上相同元素,那么新形成的字符串仍然是一个回文串。方法:设定两个下班,从左往右扫描,一旦i和j下标重合,那么i下标移动到头部,从头开始扫描,j下标向后移动一个元素。当i和j下标指向的元素相等时。判断这两个下标是否相邻或除去这两个元素,剩下的字符是否是回文串,如果是,那么计算当前回文串的长度与之前的最长回文串进行比较,大于就更新最长回文串;如果不是,就继续扫描。
2020-07-17 10:14:36 144
原创 堆排序
堆排序构造一个大顶堆,取堆顶数组(也就是最大值)放到数字尾。将剩下的数字构建一个大顶堆,取堆顶数字(也就是剩下值当中的最大值)放到数字尾。重复以上操作,直到取完堆中的数字,最终得到一个从小到大排列的序列。public static void heapfy(int arr[], int node, int n){ if (node > n / 2 || node < 0) return; int lChild = node * 2 + 1;
2020-07-17 10:00:53 115
原创 先验、后验、似然
先验、后验、似然 假设一个鱼塘里有鲈鱼和鲑鱼若干条,那么钓上来的鱼的类别是随机的,有可能是鲈鱼,也可能是鲑鱼。我们设wj为鱼的种类,j=1为鲈鱼,j=2为鲑鱼。我们不仅关心钓的是什么鱼,还关系鱼的大小,假设鱼的大小为x。先验 那么钓上来的鱼是鲈鱼或鲑鱼的概率分别为P(鲈鱼)和P(鲑鱼),这就是先验概率。只关注原因,无关结果。后验 小军和小明一起去钓鱼,在小军上厕所的时候,小明...
2019-12-16 17:34:09 906
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人