
算法
Ssssun_369
学生
展开
-
dp分析法
背包问题大概有8种类型。本博文仅描述01背包、完全背包、部分背包问题。01背包问题完全背包部分背包原创 2021-01-12 01:17:11 · 1011 阅读 · 2 评论 -
全排列
dfs实现。import java.util.*;import java.util.Stack;//全排列,回溯实现public class allsort { static Stack<String> path = new Stack<>(); static int [][] graph = { {0,1,2,1}, {1,0,0,0}, {2,0,0,1}, {1,0,1,0}}; //节点数 static int n原创 2021-01-12 01:15:38 · 260 阅读 · 0 评论 -
n皇后
package Temp;import java.util.Scanner;public class nQueen { static int res; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); //n*n棋盘,n个皇后原创 2021-01-12 01:13:20 · 263 阅读 · 0 评论 -
错误票据
错误票据思路:排序找断号、找重号。要点:输入这块要注意。import java.util.Scanner;import java.util.*;import java.util.ArrayList;//错误票据public class day05prc1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.原创 2020-10-14 08:46:03 · 196 阅读 · 0 评论 -
常见日期类问题汇总
黑色星期五要点:记住公式。import java.util.Scanner;//黑色星期五public class day04prc1 { public static void main(String []args){ Scanner sc = new Scanner(System.in); int y = sc.nextInt(); for(int m=1;m<13;m++){ int W=0; if(m==1 || m==2){ W = (.原创 2020-10-11 13:55:34 · 311 阅读 · 0 评论 -
回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67...原创 2020-03-08 20:23:35 · 384 阅读 · 0 评论 -
排序算法 —— 快速排序 && 冒泡排序
啥是 稳定性?:稳定:原先a在b的前面,若a=b,排序后仍然是a在b的前面;不稳定:原先a在b的前面,若a=b,排序后b可能在a的前面。快速排序思路:就像是不断的给基准值找位置的过程;1.首先将原数组中的第1个数当作基准值(主元),借助左右指针移位,使得基准值左边的数都小于它,右边的都大于它。将此时基准值的下标返回作为分割的下标。2.得到分割的下标后,递归实现左右两部分。3.左右两...原创 2020-03-04 23:36:42 · 211 阅读 · 0 评论 -
方格填数 —— dfs
方格填数如下的10个格子±-±-±-+| | | |±-±-±-±-+| | | | |±-±-±-±-+| | | |±-±-±-+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何...原创 2020-03-03 13:16:08 · 302 阅读 · 0 评论 -
Huffuman树的构造 —— 贪心
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下...原创 2020-03-02 12:12:28 · 284 阅读 · 0 评论 -
拯救行动 —— bfs + 优先队列
样例输入17 8#@#####@#@a#@@r@#@@#x@@@@@#@@#@##@@@##@@@#@@@@@@@@@@@@@@样例输出113样例输入213 40@x@@##x@#x@x#xxxx##@#x@x@@#x#@#x#@@x@#@xxx###x@x#@@##xx@@@#@x@@#x@xxx@@#x@#x@@x@#@x#@x#x#@@##@@x#@xx#xxx...原创 2020-02-29 14:23:20 · 418 阅读 · 0 评论 -
仙岛求药 —— dfs 与 bfs求解
样例输入18 8.@##…##…#.##.#.##……#.###.#.#…#.…###.#.…#.*….#…###样例输出110样例输入29 6.#…#..#.*.#.####.…#……#……#……#…#.@.##.#…#.样例输出2-1dfsps:使用dfs会运行超时,30组测试数据只能通过部分,其实这种最短路径、最少操作的问题最好还是靠bf...原创 2020-02-28 19:25:25 · 899 阅读 · 5 评论 -
贪心法(四)—— 最优装载问题、部分背包问题、 乘船问题
文章目录最优装载问题部分背包问题乘船问题最优装载问题部分背包问题乘船问题原创 2020-02-27 19:33:05 · 737 阅读 · 0 评论 -
【字符串匹配算法】—— BF、RK
字符串匹配给定两个字符串A和B,判断B是否是A的字串,并返回B在A中第一次出现的位置。如:在上图中B是A的字串,B第一次在A中出现的位置下标是2,则返回2。为了方便说,就把A串叫主串,把B串称模式串。BF(暴力解法)public class Main{ public static void main(String[] args) { String A = "aa...原创 2020-02-26 17:25:52 · 338 阅读 · 0 评论 -
字符串专题(二)—— 替换空格、旋转词、翻转单词、去掉连续出现k次的0
替换空格问题:请编写一个方法,将字符串中的空格全部替换为“%20”.假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString为原始的串,以及串的长度 int len ,返回替换后的string.方法一:public class Main{ public static voi...原创 2020-02-25 21:30:01 · 340 阅读 · 0 评论 -
字符串专题(一)—— 串内无重复字符、翻转字符串、变形词、两串的字符集相同、简单压缩、
文章目录串内无重复字符串内无重复字符原创 2020-02-25 00:08:34 · 463 阅读 · 0 评论 -
暴力枚举(一)
1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。在这里插入代码片2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B...原创 2020-02-24 12:11:04 · 272 阅读 · 0 评论 -
位运算
位运算&(与)、|(或)、^(异或)、~ (非 / 取反)>> 和 <<运算符将二进制为进行右移或者左移操作>>>运算符将用0填充高位;>>运算符用符号位填充高位,没有<<<运算符对于int型,1<<35 与 1<<3是相同的位运算的奇巧淫记判断奇偶数:x & 1 = ...原创 2020-02-23 19:41:29 · 5313 阅读 · 0 评论 -
图论 —— MST
连通图去一条边就是树所有生成树中权值和最小的为最小生成树原创 2020-02-22 15:28:02 · 437 阅读 · 0 评论 -
【图的dfs】—— 图的着色问题(二分图)
把相邻结点染成不同颜色称为图的着色问题对图进行着色的最小颜色数为2时称为二分图思路:这里对图的表示采取邻接表,然后就是常规的深搜。step 1:创建邻接表的类,包含基本的API:import java.util.ArrayList;import java.util.List;public class GraphNode_AL { //邻接表的表示使用ArrayList来表示邻...原创 2020-02-21 15:58:25 · 811 阅读 · 0 评论 -
【图的dfs】—— 欧拉道路
能否从无向图中的一个结点走出一条道路,每条边恰好经过一次,这样的路线称为欧拉道路(可一笔画搞定)。欧拉通路:不能一笔画搞定。如果一个无向图是连通的 且 无向图中奇点的个数为 1 或 2,则一定存在欧拉道路。import java.util.Stack;public class Main{ static Stack<String> path = new Stack<>...原创 2020-02-21 13:25:07 · 601 阅读 · 0 评论 -
【图的dfs】—— 连通检测
思路:和之前的dfs差不多一样,只是加了一个标记数组,标记已访问过的。import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLi...原创 2020-02-20 22:16:56 · 289 阅读 · 0 评论 -
红与黑 —— dfs
思路:看到题的时候,首先想到了八连通问题,有相似的部分。import java.util.Scanner;public class Main{ static int ans; static int dx[]= {-1,0,1,0 }; static int dy[]= {0,1,0,-1 }; public static void main(String[] args) { ...原创 2020-02-19 14:57:52 · 357 阅读 · 0 评论 -
贪心法(三)—— 字典序最小问题
文章目录字典序最小问题字典序最小问题原创 2020-02-18 18:36:16 · 464 阅读 · 0 评论 -
贪心法(二)—— 区间调度、区间选点
文章目录区间调度区间选点 POJ1201区间选点 POJ1328区间覆盖 POJ2376区间调度思路:将结束时间按从小到大排序。要注意的是,每一项工作的开始时间与结束时间是一组,(不能分开排序)需要打包。在这里插入代码片区间选点 POJ1201区间选点 POJ1328区间覆盖 POJ2376...原创 2020-02-16 16:01:13 · 428 阅读 · 0 评论 -
贪心法(一)—— 硬币问题、快速渡河
文章目录贪心法基本概念硬币问题快速渡河贪心法基本概念贪心法就是遵循某种规则,不断贪心地选取当前最优策略。硬币问题import java.util.Scanner;public class lanqiao1 { public static void main(String[] args) { Scanner sc = new Scann...原创 2020-02-15 21:42:22 · 730 阅读 · 0 评论 -
深度优先搜索(二)—— n皇后问题、素数环、困难的串
文章目录n皇后问题迷宫问题素数环n皇后问题迷宫问题素数环原创 2020-02-11 17:11:41 · 426 阅读 · 0 评论 -
深度优先搜索(一)—— 数独、部分和、八连通水洼
dfswhat ?: 深搜是从某一状态开始,不断的转移状态直到无法转移,然后回退到前一个状态,继续转移到其他状态,如此不断的重复,直到得到最终解; 一般dfs与递归结合解题部分和问题思路package dfs;//部分和public class dfs2 { static int k = 7; static int n = 4 ; static int a[] = {1,...原创 2020-02-07 23:06:36 · 709 阅读 · 0 评论 -
字母图形
字母图形在这里插入代码片01字串在这里插入代码片闰年判断在这里插入代码片原创 2020-02-05 18:21:01 · 298 阅读 · 0 评论 -
特殊回文数、杨辉三角形、查找整数、数列特征
文章目录特殊的回文数回文数特殊的数字特殊的回文数在这里插入代码片回文数在这里插入代码片特殊的数字在这里插入代码片原创 2020-02-05 14:11:42 · 622 阅读 · 0 评论 -
进制转换
文章目录进制转换16进制转8进制16进制转10进制10进制转为16进制小结基于Java内置的进制转换函数进制转换16进制转8进制将16进制 ——> 2进制,再将2进制——>8进制。import java.util.Scanner;public class lanqiao1 { public static void main(String[] args) { Sc...原创 2020-02-03 20:20:44 · 1001 阅读 · 0 评论 -
【递归】—— 非空子集、全排列、合格括号、上楼梯、走方格
1.上楼梯:每次只能走一步或两步。递归方程:f(n) = f(n-1) + f(n-2) + f(n-3)台阶数走法11223447……f(n)f(n-1) + f(n-2) + f(n-3)分别用递归与迭代实现:public class temp3 { /* //way1:递归 public static in...原创 2019-12-18 17:57:15 · 580 阅读 · 1 评论 -
程序员小灰算法汇总
程序员小灰2017年原创汇总程序员小灰2018年原创汇总程序员小灰2019年原创汇总原创 2019-11-07 19:57:01 · 991 阅读 · 0 评论