- 博客(29)
- 收藏
- 关注
原创 第七届 蓝桥杯 java c组 第六题
碱基生物学家正在对n个物种进行研究。其中第i个物种的DNA序列为s[i],其中的第j个碱基为s[i][j],碱基一定是A、T、G、C之一。生物学家想找到这些生物中一部分生物的一些共性,他们现在关注那些至少在m个生物中出现的长度为k的连续碱基序列。准确的说,科学家关心的序列用2m元组(i1,p1,i2,p2....im,pm)表示,满足:1...
2022-06-13 17:46:58 120
原创 第四届蓝桥杯大赛 c组 1-5题
汤姆跟爷爷来中国旅游。一天,他帮助中国的小朋友贴标语。他负责贴的标语是分别写在四块红纸上的四个大字:“好、好、学、习”。 古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式。 这里,a 和 b 必须是不同的两个整数,分子必须为 1 比如,2/15 一共有 4 种不同的分解法(姑且称为埃及分解法):横向打印二叉树 二叉树可以用于排序。其原理很简单:对于一个排 抗日战争时期,冀中平原的地道战曾发挥重要作...
2022-06-08 02:24:04 166
原创 平方拆分 , 数正方形,矩阵计数
平方拆分【问题描述】 将 2019 拆分为若干个两两不同的完全平方数之和,一共有多少种不同的方 法?数正方形【问题描述】 在一个 N × N 的点阵上,取其中 4 个点恰好组成一个正方形的 4 个顶点, 一共有多少种不同的取法?矩阵计数【问题描述】一个 N × M 的方格矩阵,每一个方格中包含一个字符 O 或者字符 X。要求矩阵中不存在连续一行 3 个 X 或者连续一列 3 个 X。问这样的矩阵一共有多少种?
2022-06-01 20:19:12 374
原创 三升序列 和递增序列
递增序列对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个 字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向 右看、或者从上向下看是递增的。 例如,如下矩阵中LANNQIAO 有LN、LN、AN、AN、IO、AO、LQ、AI、NO、NO、AQ、IN、AN 等 13 个...
2022-05-30 16:46:05 576
原创 Day 19 马踏棋盘(回溯 贪心)
package HorseBoard;import java.awt.*;import java.time.LocalDateTime;import java.time.temporal.ChronoField;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.Date;public class horseBoardTest { priv.
2022-05-28 19:15:20 91
原创 Day 18 Floyd算法
例子仍是最短路径该算法是求所有节点之间的最短距离 无法指定只求一个package FloydTest;import java.util.Arrays;public class floydTest { public static void main(String[] args) { char []node = {'A','B','C','D','E','F','G'}; int no = 5555; int [][]nodeMap ..
2022-05-25 17:09:06 77
原创 Day 17 Dijkstra算法(最短路径)
例子package DijkstraTest;import java.util.Arrays;public class Dijkstra { public static void main(String[] args) { //地杰斯特拉算法 求最短路径 char []node = {'A','B','C','D','E','F','G'}; int no = 5555; int [][]nodeMap =...
2022-05-24 00:44:20 143
原创 Day 16 贪心算法
贪心算法 指在对问题求解时 每一步都采用最优选择 从而希望导致结果是最优的(贪婪算法的结果不一定是最优的 但都是近似于最优的)例子电台覆盖问题package 贪心;import java.security.KeyStore;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;public class Greed { //贪心算法 .
2022-05-22 20:18:20 101
原创 Day 15 KMP算法
import java.util.Arrays;public class KMPTest { public static void main(String[] args) { //源串 String x = "BBC ABCDAB ABCDABCDABDE"; //目标串 String z = "ABCDABD";// int []table = getTable(z);// System.out..
2022-05-21 17:21:49 111
原创 Day 14 分治 动态规划
分治:把问题分为多个子问题求出子问题的解合并就为问题的解 (分治中每个子问题之间不存在相互依赖)案例汉诺塔public class FenZhi { public static void main(String[] args) { hnt(3,'A','B','C'); } //汉诺塔 public static void hnt(int count,char a,char b,char c ){ if (count==1){ ...
2022-05-20 12:14:40 163
原创 Day 13 递归 迷宫回溯 八皇后问题
感觉递归还是不太会用就又看了一遍迷宫回溯package MiGong;public class migong { public static void main(String[] args) { //创建迷宫地图 int [][]map = new int[10][10]; for (int i=0;i<map.length;i++){ map[i][0] = 1; map[i][ma
2022-05-19 20:27:06 137
原创 Day 12 图的最小生成树MST(prim,kruskal)
最小生成树给定一个带权的无向连通图选取边将所有顶点连起来的同时边的和的权值最小 即为最小生成树prim算法import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class PrimTest { public static void main(String[] args) { //普利姆算法 求图的最小生成树 普利姆算法生成的边的数量为 节点数量-1 ...
2022-05-18 15:36:36 173
原创 Day 11 平衡二叉树(AVL树) 二分查找
平衡二叉树 是为了防止 二叉排序树会出现树的两端长度不均匀 严重影响查找的性能package AVLTree;public class AVLTreeTest { public static void main(String[] args) { int []x = {10,11,7,6,8,9};// int []x = {9,8,7,6,5,4,3}; String []z = {"阿狸","亚索","鱼人","猴子","琴女","螳螂
2022-05-17 10:53:33 227
原创 Day 10 赫夫曼树 赫夫曼编码
赫夫曼树 赫夫曼编码package hfm;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Map;import java.util.stream.Stream;public class HuffmanTreeTest { public static void main(String[] args) { int [.
2022-05-16 12:23:22 91
原创 Day 9 图的深度优先dfs 和 广度优先bfs
图的深度优先dfs 和 广度优先bfsimport com.sun.org.apache.regexp.internal.RE;import org.omg.CORBA.PUBLIC_MEMBER;import java.util.ArrayList;import java.util.LinkedList;public class mapTest { public static void main(String[] args) { String []x = {"A"
2022-05-15 08:44:14 67
原创 day 8 图
当我们需要用到多对多的关系时 就需要图图中的节点也可以称为顶点两个顶点之间的链接称之为边当图中的边没有指认方向时 称为无向图当图的边有了权值 就称为带权图路径是指两个顶点之前所以可以互相到达的路线import com.sun.org.apache.regexp.internal.RE;import java.util.ArrayList;public class mapTest { public static void main(String[] args) {
2022-05-14 00:33:36 84
原创 day 7 大顶堆和小顶堆 二叉排序树
大顶堆 堆排序 例子import java.lang.reflect.Array;import java.util.Arrays;public class heapSortTest { public static void main(String[] args) { int []x = {4,6,8,5,9}; heapSort heapSort = new heapSort(); heapSort.setHeapSort(x);
2022-05-13 05:36:10 146
原创 day6 顺序储存二叉树 和 线索化二叉树及遍历
顺序储存二叉树public class welltree { public static void main(String[] args) { int []x = {1,2,3,4,5,6,7}; tree1 t = new tree1(x);// t.preOrder(0);//前序遍历// t.fixOrder(0);//中序遍历 t.lastOrder(0);//后序遍历 }}//顺序存储二叉树
2022-05-12 03:29:47 143
原创 day5 二叉树的遍历 查询
学到了树的一些常用术语和二叉树的前中后遍历 前中后查找public class treeTest { public static void main(String[] args) { //创建节点 node node1 = new node(1,"阿狸"); node node2 = new node(2,"剑圣"); node node3 = new node(3,"亚索"); node node4 = n...
2022-05-11 00:51:57 97
原创 day4 栈 ,HashMap
栈是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈底(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,所以栈又被称为后进先出的线性表,一个例子import java.util.Stack;public class arrayStackTest { public static void main(String[] args) { arrayStack stack = new arrayStack(3);
2022-05-10 01:05:20 252
原创 day3 单向链表
再次看了下链表的教程视频 根据视频内容写了个单向链表的例子和一些常见的public class singleLinkedListTest { //单链表 public static void main(String[] args) { //创建几个节点 node node1 = new node(1,"剑圣","打野"); node node2 = new node(2,"亚索","中单"); node node3 = n
2022-05-08 23:09:15 438
原创 day2 稀疏数组 和环形数列
稀疏数组的应用场景 在一个数组中有多个相同的数据的时候可以使用稀疏数组来保存该数组来达到缩小数组规模的效果例子 对一个五子棋棋盘的存盘与复盘 练习写的例子import java.util.ArrayList;import java.util.List;public class xssz { public static void main(String[] args) { //假设数组x是五子棋棋盘 int [][]x = new int[5][5]..
2022-05-07 21:21:18 409
原创 day 1 线性表
day 1 学习线性表线性表就是零个或多个数据元素的有限序列线性表主要有顺序链表 和链式链表顺序链表:其中的存储元素的地址是连续的 只要知道其中一个元素的地址就可以顺势得到整个链表的元素 顺序链表在查询的时候效率非常高 但是在增加和删除的时候效率很低 因为他是有序的 在其中任意一个地方增加或删除就会导致后续的所有元素都需要向前或后移一位 ArrayList 就是一个顺序链表链式链表:链式链表也分单链表和双向链表 他的储存元素的地址可以是连续的也可以是不连续的 他其中的元素除了要储存.
2022-05-06 19:19:39 65
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人