随笔分类 -  数据结构与算法

该分类包括数据结构和算法的例题; 语言主要以java为主;
【链表】分割链表
摘要:目录 1.题目描述 2.解题思路 3.解题代码 4.实现结果 1.编写代码,以给定值x为基准 将链表分割成两部分,所有小于x的节点排在大于或等于x的节点前。 给定一个链表的头指针 ListNode *phead,请返回重新排序后的头指针。 注意:分割后保持原来的数据顺序不变;不要开辟新的空间,即不要 阅读全文

posted @ 2021-02-22 21:41 丁不煮 阅读(201) 评论(0) 推荐(0)

【排序】桶排序 bucket sort
摘要:目录 1.桶排序思想 2.算法过程 3.算法实现代码 在开头安利一个可视化网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 这上面有排序算法的可视化实现,可结合下文算法过程对照着图学习。 思想:将待排序集合中处于同一 阅读全文

posted @ 2021-02-18 20:56 丁不煮 阅读(174) 评论(0) 推荐(0)

【字符串匹配】KMP算法
摘要:目录 1.KMP的名词解释 2.KMP运行原理 3.KMP的代码 1.KMP的名词解释 KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。 具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。 2 阅读全文

posted @ 2021-02-03 20:19 丁不煮 阅读(105) 评论(0) 推荐(0)

【字符串】最短摘要问题
摘要:给定一段产品的英文描述,包含M个英文单词,每个单词以空格分隔。无其他标点符号; 再给定N个英文单词做关键词。 编程实现方法,目标是按照此产品的描述包含N个关键字的长度最短的子串,作为产品简介输出。 每个关键词至少出现一次。 方法1:暴力法 利用双层循环,从头遍历M个英文单词,如果N个关键词均包含在k 阅读全文

posted @ 2021-01-28 20:35 丁不煮 阅读(115) 评论(0) 推荐(0)

【蓝桥杯模拟二】括号序列
摘要:题目说明: 由 1 对括号,可以组成一种合法括号序列:()。 由 2 对括号,可以组成两种合法括号序列:()()、(())。 由 4 对括号组成的合法括号序列一共有多少种? 分析: 合法括号,必须包含左括号和右括号;这题类似全排列问题; 使用逐步生成法,在上一次获得的合法括号序列的前面和每个左括号后 阅读全文

posted @ 2020-08-15 21:01 丁不煮 阅读(838) 评论(0) 推荐(0)

矩阵旋转90度
摘要:题目说明: 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后(顺时针)的NxN矩阵,保证N小于等于500,矩阵元素小于等于256。 注意:不要使用缓存矩阵 输入 3 1 2 3 4 5 6 7 8 9 输出 7 4 1 8 5 2 9 6 3 拓展:逆时针旋转90度,返回旋转后的矩阵。 顺时针旋转 阅读全文

posted @ 2020-07-30 22:37 丁不煮 阅读(1141) 评论(0) 推荐(0)

矩阵乘积
摘要:题目说明: 已知两个矩阵a,b,求a*b 分析: 结果矩阵等于 a的每一行的元素,分别乘b的每一列的元素在相加; 前提:a的列=b的行 矩阵a2*2 1 2 1 -1 * 矩阵b2*3 1 2 -3 -1 1 2 结果矩阵C2*3 -1 4 1 2 1 -5 我的代码主要分为一下几个模块: 1.从键 阅读全文

posted @ 2020-07-30 19:22 丁不煮 阅读(315) 评论(0) 推荐(0)

【蓝桥杯】求子数组最大累积和
摘要:题目描述:给定一个数组arr,返回子数组的最大累计和。 例如arr=[1,-2,3,5,-2,6,-1],返回12.(因为子数组[3,5,-2,6]累积和最大。) 拓展:试求出累计和最大的子数组 分析: 思路1:使用双指针,暴力破解,逐个累积求和。 1 private static void sol 阅读全文

posted @ 2020-07-27 19:18 丁不煮 阅读(282) 评论(0) 推荐(0)

【蓝桥杯】边界为1的最大子方阵的优化
摘要:优化方法: 直接判断某个顶点是否为矩阵的左上角。通过辅助数组。该数组负责记录该顶点(包含自身)的右方,和下方1的个数。可以看作是改二维数组中又包含一个二元组。 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 其辅助数组为(右,下) (3,1) (4,1) (1,1) (0,0) (2 阅读全文

posted @ 2020-07-27 12:48 丁不煮 阅读(322) 评论(0) 推荐(0)

【蓝桥杯】找出边界为1的最大子方阵
摘要:题目说明: 给定一个N*N的矩阵matrix,在这个矩阵里,只有0和1的两种值,返回边框全是1的最大正方形的边长长度。 示例: 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 输出 :3 因为 1 1 1 1 1 1 1 1 分析:(枚举,遍历所有可能性) 1.最大正方形,一定是从N 阅读全文

posted @ 2020-07-27 12:02 丁不煮 阅读(327) 评论(0) 推荐(0)

【蓝桥杯】找出最长连续递增子序列(部分有序)
摘要:题目:找出最长连续递增子序列(部分有序) 例如{1,9,2,5,7,3,4,6,6,7,8,9}的最长递增子序列为{3,4,6,6,7,8,9} 解题思路: 1.分析题意: 在序列连续,递增,部分有序的情况下,求最长的部分(相当于是锯齿数组) 2.设计方法: 设置“双指针”,一个表示连续递增子序列的 阅读全文

posted @ 2020-05-31 18:24 丁不煮 阅读(439) 评论(0) 推荐(0)

导航