java算法
java算法实现
DrugHua
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LeetCode】1423. 可获得的最大点数
/* 1423. 可获得的最大点数 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。 */ class Solution10 { public int maxScore(int[] cardPoints, int k) { .原创 2022-05-07 09:22:19 · 240 阅读 · 0 评论 -
【LeetCode】1208. 尽可能使字符串相等
/* 1208. 尽可能使字符串相等 给你两个长度相同的字符串,s 和 t。 将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。 如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。 如果 s 中没有子字符串.原创 2022-05-07 09:21:44 · 127 阅读 · 0 评论 -
【LeetCode】1004. 最大连续1的个数 III
class Solution8 { /* 1004. 最大连续1的个数 III 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。 */ public int longestOnes(int[] nums, int k) { int lk=0; int rk=0; int length = nums.length; int count = k; int max = 0; //向右移动.原创 2022-05-07 09:21:01 · 194 阅读 · 0 评论 -
【LeetCode】567. 字符串的排列
class Solution7 { /* 567. 字符串的排列 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 */ public boolean checkInclusion(String s1, String s2) { int zLen = s1.length(); int fLen = s2.length(); int.原创 2022-05-07 09:19:49 · 131 阅读 · 0 评论 -
【LeetCode】438. 找到字符串中所有字母异位词
class Solution6 { /* 438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 */ public List<Integer> findAnagrams(String s, String p) { int slen = s.length(); int plen = p.leng.原创 2022-05-07 09:18:21 · 110 阅读 · 0 评论 -
【LeetCode】1052. 爱生气的书店老板
class Solution5 { /* 1052. 爱生气的书店老板 有一个书店老板,他的书店开了 n 分钟。每分钟都有一些顾客进入这家商店。给定一个长度为 n 的整数数组 customers ,其中 customers[i] 是在第 i 分钟开始时进入商店的顾客的编号,所有这些顾客在第 i 分钟结束后离开。 在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满.原创 2022-05-07 09:17:00 · 168 阅读 · 0 评论 -
【LeetCode】1695. 删除子数组的最大得分
class Solution4 { /* 1695. 删除子数组的最大得分 给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组。删除子数组的 得分 就是子数组各元素之 和 。 返回 只删除一个 子数组可获得的 最大得分 。 如果数组 b 是数组 a 的一个连续子序列,即如果它等于 a[l],a[l+1],...,a[r] ,那么它就是 a 的一个子数组。 */ public int maximumUniqueSubarray(int[] nums)..原创 2022-05-07 09:16:19 · 209 阅读 · 0 评论 -
【LeetCode】209. 长度最小的子数组
class Solution3 { /* 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 */ public int minSubArrayLen(int target, int[] nums) { int tmp =0; in.原创 2022-05-07 09:15:40 · 115 阅读 · 0 评论 -
【LeetCode】3. 无重复字符的最长子串
class Solution2{ public int lengthOfLongestSubstring(String s) { /* 3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 */ Set<Character> set = new HashSet<>(); int lk = 0; int rk = 0; int length = s.length(); int t.原创 2022-05-07 09:15:05 · 111 阅读 · 0 评论 -
【LeetCode】643. 子数组最大平均数 I
class Solution1 { /* 643. 子数组最大平均数 I 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 */ public double findMaxAverage(int[] nums, int k) { int tmp = 0; int max = Integer.MIN_VALUE; in.原创 2022-05-07 09:13:28 · 252 阅读 · 0 评论 -
java克鲁斯卡尔(kruskal)最小生成树代码实现
import java.util.Arrays;/** * @author Drug * @create 2020-05-16 12:01 */public class Kurskal { //边数 private int edgeNum; //顶点信息 private char[] vertexs; //权值矩阵 private int[][] matrix; //表示无法连通的最大值 private static final i原创 2020-05-16 14:30:29 · 1212 阅读 · 0 评论 -
java普利姆算法(Prim)最小生成树修路问题代码实现
import java.util.Arrays;/** * @author Drug * @create 2020-05-15 16:42 */public class Prim { public static void main(String[] args) { //测试看看图是否创建ok char[] data = new char[]{'A','B','C','D','E','F','G'}; int verxs = data.len原创 2020-05-15 17:23:25 · 445 阅读 · 0 评论 -
java贪心算法(集合覆盖问题)代码实现
import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;/** * @author Drug * @create 2020-05-14 17:04 */public class Greedy { public static void main(String[] args) { //创建广播电台,放入到Map HashMap<String,HashSe原创 2020-05-14 17:38:53 · 841 阅读 · 2 评论 -
java字符串匹配KMP算法代码实现
import java.util.Arrays;/** * @author Drug * @create 2020-05-13 16:51 */public class KMP { public static void main(String[] args) { String str1 = "BBC ABCDAB ABCDABCDABDE"; String str2 = "ABCDABD"; //String str2 = "BBC";原创 2020-05-13 17:03:56 · 271 阅读 · 0 评论 -
java字符串暴力匹配法代码实现
主要目的是与KMP算法进行比较,回溯次数太多,太低效,仅是一种死路/** * @author Drug * @create 2020-05-13 15:44 */public class ViolenceMatch { public static void main(String[] args) { //测试 String str1 = "JavaLoveJaLoveJavaLoveJava"; String str2 = "JavaLove原创 2020-05-13 15:53:05 · 559 阅读 · 1 评论 -
java动态规划(背包问题)代码实现
/** * @author Drug * @create 2020-05-12 15:46 */public class KnapsackProblem { public static void main(String[] args) { //物品重量 int[] w = {1, 4, 3}; //物品价格 int[] value = {1500, 3000, 2000}; //背包容量 int原创 2020-05-12 16:35:25 · 515 阅读 · 0 评论 -
java分治算法代码实现(汉若塔问题解决)
/** * @author Drug * @create 2020-05-12 14:25 */public class HanoiTower { static int count = 0; public static void main(String[] args) { hanoiTower(5, 'a','b','c'); } /** * 汉若塔问题分治算法解决 * @param num 需要摆放的盘子个数 * @原创 2020-05-12 14:40:24 · 203 阅读 · 0 评论 -
java二分查找算法非递归代码实现
/** * @author Drug * @create 2020-05-12 14:02 */public class BinarySearchNoRecur { public static void main(String[] args) { int[] arr = {0,1,3,15,17,22,100,230,1512}; int i = binarySearch(arr, 101); System.out.println(i);原创 2020-05-12 14:38:25 · 169 阅读 · 0 评论 -
java图的深度优先遍历(dfs)和广度优先遍历(bfs)代码实现
import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;/** * @author Drug * @create 2020-05-11 12:16 */public class Graph { //顶点集合 private ArrayList<String> vertexList; //邻接矩阵 private int[][] edges; .原创 2020-05-11 16:15:52 · 545 阅读 · 0 评论 -
java自平衡二叉搜索树(AVL)代码实现
对添加节点时,判断后进行双旋转即可实现自平衡/** * @author Drug * @create 2020-05-09 11:19 */public class AVLTreeDemo { public static void main(String[] args) {// int[] arr = {4,3,6,5,7,8}; int[] arr = {10, 11, 7, 6, 8, 9}; AVLTree avlTree = ne原创 2020-05-09 12:17:03 · 275 阅读 · 0 评论 -
java赫夫曼编码压缩解压文件代码实现
package drug.huffmanCode;import java.io.*;import java.util.*;/** * @author Drug * @create 2020-05-06 18:52 */public class HuffmanCode { public static void main(String[] args) {// ...原创 2020-05-07 19:47:51 · 310 阅读 · 0 评论 -
java堆排序代码实现
package drug.sort;import java.util.Arrays;/** * @author Drug * @create 2020-05-04 16:08 */public class HeapSort { public static void main(String[] args) { int[] arr = {10,-1,-101,1...原创 2020-05-04 16:36:34 · 210 阅读 · 0 评论 -
java斐波那契查找算法代码实现
package drug.search;import java.util.Arrays;/** * @author Drug * @create 2020-04-29 16:10 */public class FibonacciSearch { public static void main(String[] args) { int[] arr = {1,3...原创 2020-04-29 16:29:10 · 398 阅读 · 0 评论 -
java插值查找代码实现
import java.util.Arrays;/** * @author Drug * @create 2020-04-29 14:59 */public class InsertValueSearch { public static void main(String[] args) { int[] arr = new int[100]; f...原创 2020-04-29 15:26:36 · 327 阅读 · 0 评论 -
java线性查找代码实现
/** * @author Drug * @create 2020-04-28 14:12 */public class SeqSearch { public static void main(String[] args) { int[] arr = {10,20,11,15,77,13,15,111}; int i = seqSearch(arr...原创 2020-04-28 15:04:08 · 298 阅读 · 0 评论 -
java二分查找代码实现
package drug.search;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * @author Drug * @create 2020-04-28 14:26 */public class BinarySearch { public stati...原创 2020-04-28 15:03:29 · 248 阅读 · 0 评论 -
java基数排序代码实现
import java.util.Arrays;/** * @author Drug * @create 2020-04-27 16:28 */public class RadixSort { public static void main(String[] args) { int[] arr={10,4,11,455,15,532,12}; r...原创 2020-04-27 16:51:48 · 197 阅读 · 0 评论 -
java归并代码实现
package drug.sort;import java.util.Arrays;/** * @author Drug * @create 2020-04-26 14:44 */public class MergetSort { public static void main(String[] args) { int[] arr= {10,1,-13,41...原创 2020-04-26 15:13:43 · 213 阅读 · 0 评论 -
java快速排序代码实现
package drug.sort;import java.text.SimpleDateFormat;import java.util.Date;/** * @author Drug * @create 2020-04-25 15:51 */public class QuickSort { public static void main(String[] args) {...原创 2020-04-25 16:59:47 · 214 阅读 · 0 评论 -
java希尔排序代码实现
package drug.sort;import java.util.Arrays;/** * @author Drug * @create 2020-04-24 13:22 */public class ShellSort { public static void main(String[] args) { int[] arr = {9, 5, 7, 8,...原创 2020-04-25 16:59:31 · 223 阅读 · 0 评论 -
java选择排序代码实现
package drug.sort;import java.util.Arrays;/** * @author Drug * @create 2020-04-22 19:01 */public class SelectSort { public static void main(String[] args) { int[] arr = {10,51,11,7...原创 2020-04-25 16:59:12 · 272 阅读 · 1 评论 -
java插入排序代码实现
package drug.sort;import java.util.Arrays;/** * @author Drug * @create 2020-04-23 12:23 */public class InsertSort { public static void main(String[] args) { //测试 int[] arr=...原创 2020-04-25 16:58:53 · 241 阅读 · 0 评论 -
java冒牌排序(优化)
package drug.sort;import org.junit.jupiter.api.Test;import java.text.SimpleDateFormat;import java.util.Date;/** * @author Drug * @create 2020-04-20 19:29 */public class BubbleSort { @Te...原创 2020-04-25 16:58:34 · 319 阅读 · 0 评论 -
java八皇后问题(递归)
优雅的代码简洁,但思维过程真的很难,学习递归的核心思想目前我的理解就是控制迫近退出的递归条件,递归方法的返回值和传入引用对象的改变都能控制递归结束package drug.recursion;/** * @author Drug * @create 2020-04-19 14:43 */public class Queue8 { //设置最大皇后数 8 int m...原创 2020-04-25 16:58:10 · 451 阅读 · 0 评论 -
java迷宫回溯(递归)
代码简单,写起来也简单,从零思考很难,留着学习import org.junit.jupiter.api.Test;/** * @author Drug * @create 2020-04-19 13:23 */public class test { @Test void test1() { //设置迷宫 int[][] map = ...原创 2020-04-25 16:44:51 · 404 阅读 · 0 评论 -
java逆波兰计算器(中缀转后缀表达式)
import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * @author Drug * @create 2020-04-18 17:39 */public class PolandNotion { public static void main(String[] args) ...原创 2020-04-25 16:44:12 · 251 阅读 · 0 评论 -
java栈实现综合计算器(中缀表达式)
/** * @author Drug * @create 2020-04-18 15:31 */public class Calculator { public static void main(String[] args) { String expression = "100*2-5";//表达式 //数组栈 ArrayStack2...原创 2020-04-25 16:43:41 · 225 阅读 · 0 评论
分享