算法
frcoder
FRLH
展开
-
【java编程(在线笔试)】【动态规划】背包问题
/** * 背包问题(0-1背包) * <p> * 给你一个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两个属性。其中第 i 个物品的重量为 wt[i],价值为 val[i],现在让你用这个背包装物品,最多能装的价值是多少? * * @author frlh * @create 2020/06/21 15:26 */public class T10 { public static int maxPrice(int N, int W, int[] ws,原创 2020-10-19 00:05:49 · 258 阅读 · 0 评论 -
【java编程(在线笔试)】【滑动窗口】最小覆盖子串
import java.util.HashMap;import java.util.Map;import java.util.HashMap;import java.util.Map;/** * 最小覆盖子串 * <p> * 在s中寻找包含t中所有元素的最小子串 * * @author frlh * @create 2020/06/21 15:26 */public class T8 { static String minWindow(String s, S原创 2020-10-18 13:22:36 · 114 阅读 · 0 评论 -
【java编程(在线笔试)】【BFS广搜】密码锁
import java.util.*;/** * 密码锁 * * @author frlh * @create 2020/06/21 15:26 */public class T6 { static String plusOne(String s, int i) { StringBuffer ss = new StringBuffer(s); char c = s.charAt(i); if (c == '9') c = '0';原创 2020-10-18 13:17:28 · 226 阅读 · 1 评论 -
【java编程(在线笔试)】【BFS广搜】二叉树的最小高度
import java.util.LinkedList;import java.util.Queue;/** * 二叉树的最小高度 * * @author frlh * @create 2020/06/21 15:26 */public class T5 { static class Node { int value; Node left; Node right; public Node(int value) {原创 2020-10-18 12:55:22 · 175 阅读 · 0 评论 -
【java编程(在线笔试)】【回溯】n皇后
import java.util.ArrayList;import java.util.List;/** * n皇后 * * @author frlh * @create 2020/06/21 15:26 */public class T4 { static int n = 8; static List<Integer> track = new ArrayList<>(); public static boolean test(int i原创 2020-10-18 12:52:16 · 90 阅读 · 0 评论 -
【java编程(在线笔试)】【回溯】全排列
import java.util.ArrayList;import java.util.List;/** * 全排列 * * @author frlh * @create 2020/06/21 15:26 */public class T3 { static List<Integer> track = new ArrayList<>(); public static void f(List<Integer> nums) {原创 2020-10-18 12:46:34 · 110 阅读 · 0 评论 -
【java编程(在线笔试)】【动态规划】找零钱-最少需要多少枚钱
import java.util.HashMap;import java.util.Map;/** * 找零钱-最少需要多少枚钱 * * @author frlh * @create 2020/06/21 15:26 */public class T2 { public static int f(int[] coins, int amount) { if (amount < 0) return -1; if (amount == 0) ret原创 2020-10-18 12:44:15 · 160 阅读 · 0 评论 -
【java编程(在线笔试)】【动态规划】找零钱-有多少种方案
/**找零钱方案数@author frlh@create 2020/06/21 15:26*/public class T1 {public static int change(int amount, int[] coins) {return change(amount, coins, 0);}public static int change(int amount, int[] coins, int index) {if (amount == 0) {return 1;原创 2020-10-18 12:42:27 · 255 阅读 · 0 评论 -
【java编程(在线笔试)】二分搜索模板
/** * 二分搜索模板 * <p> * 注意:有序集合才可以用二分搜索 * * @author frlh * @create 2020/10/18 12:19 */public class T0 { // 二分搜素,查找某个元素 static int bs(int[] nums, int target) { int l = 0, r = nums.length - 1; while (l <= r) {原创 2020-10-18 12:31:34 · 123 阅读 · 1 评论 -
【java编程(在线笔试)】【动态规划模板】斐波那契数列
public class C { public static int f(int n) { if (n == 1 || n == 2) return 1; return f(n - 1) + f(n - 2); } public static int f1(int n) { Integer[] tmp = new Integer[n + 1]; return f1_(n, tmp); } publ.原创 2020-10-18 11:48:19 · 154 阅读 · 0 评论 -
【java编程(在线笔试)】【链表】链表的拆分、反转、合并
/** * @author frlh * @create 2020/06/07 22:10 */public class Main1 { static class Node { int value; Node next; public Node(int value, Node next) { this.value = value; this.next = next; }原创 2020-10-18 11:46:20 · 170 阅读 · 0 评论 -
【java编程(在线笔试)】【链表】两道k个一组翻转链表题目(包含非递归和递归两种解法)
一、给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点也反转顺序。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode原创 2020-07-27 14:16:14 · 224 阅读 · 0 评论 -
【java编程(在线笔试)】【运算】大数相加
1. 大数相加import java.util.ArrayList;import java.util.List;import java.util.Random;/** * @author frlh * @create 2020/06/07 15:58 */public class Main { static Random random = new Random(); // 核心方法 public static String sum(String a, Strin原创 2020-06-07 18:00:30 · 245 阅读 · 0 评论 -
【java编程(在线笔试)】常用工具类
import java.util.*;public class Help { /** * 数学计算 */ public static void mathHelp() { System.out.println("\n\nmathHelp:--------------------------\n"); System.out.println(Math.random()); // Math.random()返回double[0.0,1.0原创 2020-06-07 17:46:02 · 254 阅读 · 0 评论 -
关于红黑树插入过程的正确描述
前言鉴于网上其它教程中对于红黑树的插入操作的叙述并不十分清楚准确全面,所以本文主要是对插入过程进行介绍。参见第3节。本文对于红黑树的定义、概念、性质、以及操作过程的图形化表述等内容的叙述较为简略,请参考官方定义或其他教程。1. 红黑树的基础概念R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位原创 2017-08-07 15:34:53 · 1310 阅读 · 0 评论 -
java之输入输出(ACM,OJ相关)
1. java输入输出的基础部分2. 浮点数输出3. 多进制输出(8、16进制)原创 2017-08-18 12:06:16 · 2025 阅读 · 0 评论 -
java各种进制之间的相互转化
1. 各种进制字符串形式的相互转化2. 在输入输出的过程中,直接转化各种进制(注意:不能直接转化2进制,2进制需要用字符串处理)3. 格式化输出的字符串原创 2017-08-18 18:52:01 · 16840 阅读 · 0 评论 -
java输入输出代码片段
本文提供一些java代码片段,可简化ACM,OJ的输入输出。原创 2017-08-18 18:55:14 · 513 阅读 · 0 评论 -
记录多继承中Diamond Problem的一种解法(MRO算法)
1. 原理介绍引用自:《JavaScript中的“多继承”》假设现在有这样的多继承结构:其中 merge 的规则如下:1. 取出第一个序列的 head2. 如果,该 head 不在其它序列的 tail中,则把这个 head 添加到结果中并从所有的序列中移除它3. 否则,用下一个序列的 head 重复上一步4. 直到所有序列中的所有元素都被移除(或者无法找到一个符合的head)...原创 2019-03-08 17:47:19 · 315 阅读 · 0 评论 -
背包问题
题目:在n个数字中取出m个数字,使m个数字之和为b,请打印所有方案。例:在{6, 5, 4, 3, 2, 1}中取m个数字,使数字之和为5,请打印所有方案。解:import java.util.ArrayList;import java.util.Arrays;/** * Created by LH on 2017/3/2. */public class P原创 2017-03-03 16:11:21 · 255 阅读 · 0 评论