
数据结构与算法(java版)
文章平均质量分 60
数据结构与算法(java版)
戏拈秃笔
Java后端开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第十五届蓝桥杯Java A组参赛总结
炮灰赛后的内心独白原创 2024-04-14 10:16:58 · 1444 阅读 · 0 评论 -
杂题——找数学规律
观察前面推算出来的结果,通过找数学规律化繁为简原创 2024-04-11 00:02:41 · 567 阅读 · 0 评论 -
数据结构——链表
链表是由许多相同数据类型的数据项按特定顺序排列而成的线性表特性:存放的位置是不连续且随机的,动态分配内存优点:插入或删除数据方便缺点:查找不方便,要按序查找数据原创 2024-04-08 00:02:22 · 1396 阅读 · 1 评论 -
数据结构——二叉树
二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。原创 2024-03-26 23:17:09 · 448 阅读 · 0 评论 -
算法——博弈论——公平组合游戏——威佐夫博弈
先手必败的局势的特征为,两堆石子的差值乘以黄金分割数,取整后等于最小的那堆石子数原创 2024-03-24 23:09:08 · 371 阅读 · 0 评论 -
杂题——1188: 做幻方
分析:数字 1 放在最后一行的中间位置,然后按照如下规则填充其他数字:向右下方移动一个位置,并依次填入数字,如果下一个位置已填有数字,就不往右下角走了,往上走一行从数字1开始一直填充到n*n如果超出矩阵的边界,则将位置移到对应的反方向位置(例如,超出上边界则移到下边界,超出右边界则移到左边界)。原创 2024-03-19 22:35:10 · 328 阅读 · 0 评论 -
杂题——1187: 假币问题
如果硬币数目为 1,则表示已找到假币,无需再进行称重。否则,我们将这些硬币分成三等份:如果总数能被 3 整除,则每份硬币数相等;如果不能整除,则其中两份数目相等,而最后一份可能比其他两份多一个硬币。将硬币分成三等份后,取相同的两份上称,然后找出重量较轻的一份硬币(即是假币所在的那一份),并继续对这一份硬币重复上述步骤,直到找到唯一的假币。原创 2024-03-19 21:12:20 · 346 阅读 · 0 评论 -
杂题——1161: 回文数(二)(不同进制下的加法运算)
主要分成三部分考虑:1、获取该数的反转数2、做不同进制下的加法运算3、判断结果是否为回文数原创 2024-02-26 15:29:23 · 410 阅读 · 0 评论 -
杂题——委派任务*
此题固然存在更好的解法,但以我的能力而言,我还是得保有最暴力的解法,学有余力再去探索更高层次的代码原创 2024-02-25 20:44:49 · 225 阅读 · 0 评论 -
杂题——亲密数
用HashMap存储,键为该数,值为该数的因子和原创 2024-02-25 19:34:17 · 354 阅读 · 0 评论 -
杂题——8除不尽的数
从1开始搜寻,如果满足所有条件就退出循环原创 2024-02-25 19:09:51 · 391 阅读 · 0 评论 -
杂题—— 1115: DNA
注意同一组内的两个DNA间有共享的行,不要重复打印了除了最后一个,其余的都打印少最后一行即可'X'主要出现在矩阵的对角线上原创 2024-02-25 00:20:10 · 349 阅读 · 0 评论 -
杂题——1106: 奖学金
使用普通for循环,先对总分进行排序,再对语文成绩进行排序,最后对学号进行排序另写一个交换行的方法,方便重复调用思路简单粗暴原创 2024-02-23 23:19:13 · 552 阅读 · 0 评论 -
杂题——1097: 蛇行矩阵
对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。本题有多组数据,每组数据由一个正整数N组成。蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。原创 2024-02-22 21:35:30 · 865 阅读 · 0 评论 -
杂题——1096: Minesweeper
扫雷员你玩过扫雷吗?左侧的4 x 4字段包含两个地雷,每个地雷由一个“*”字符表示。如果我们用上面描述的提示数字来表示同一个字段,我们最终得到右边的字段:*……每个字段的第一行包含两个整数n和m(0<n,m$\le$100),它们分别代表字段的行数和列数。接下来的n行中的每一行正好包含m个字符,表示字段。n=m=0的第一条字段线表示输入的结束,不应进行处理。对于每个字段,单独在一行上打印消息field#x:,其中x表示从1开始的字段编号。接下来的n行应包含带有“.”的字段字符被该方块附近的地雷数量所取代。原创 2024-02-22 21:09:37 · 638 阅读 · 0 评论 -
杂项——约瑟夫环问题
约瑟夫问题(Josephus problem)是一个经典的数学问题,通常描述为:有 n 个人围成一圈,从第一个人开始报数,每次报到 m 的人出列,然后下一个人重新开始从 1 报数,直到最后只剩下一个人为止。问题要求确定最后剩下的人在初始顺序中的编号。原创 2024-02-21 21:19:58 · 512 阅读 · 0 评论 -
杂题——1028: [编程入门]自定义函数求一元二次方程
求一元二次方程的解原创 2024-02-21 18:40:56 · 425 阅读 · 0 评论 -
算法——排序算法
常见的排序算法包括:冒泡排序(Bubble Sort)插入排序(Insertion Sort)选择排序(Selection Sort)归并排序(Merge Sort)快速排序(Quick Sort)堆排序(Heap Sort)计数排序(Counting Sort)桶排序(Bucket Sort)基数排序(Radix Sort)原创 2024-02-20 22:57:53 · 1328 阅读 · 0 评论 -
算法——数值算法——牛顿迭代法
牛顿迭代法(Newton's method)则是一种特定的迭代法,用于求解方程或函数的根、最小值、最大值等问题。原创 2024-02-20 22:38:47 · 913 阅读 · 0 评论 -
算法——数论——同余
同余:若m(正整数),a 和 b 是整数,a%m==b%m,或(a-b)%m==0,记为ab(mod m)原创 2024-02-17 21:39:40 · 556 阅读 · 0 评论 -
算法——图论——最短路径——Floyd / 传递闭包
弗洛伊德算法的核心思想是利用三重循环遍历所有顶点,逐步更新每对顶点之间的最短路径的信息。原创 2024-02-16 23:33:59 · 1062 阅读 · 0 评论 -
杂题——字符串——试题 算法训练 二元函数
解析字符串,使用递归方法,从外向内,寻找f()函数的两个参数原创 2024-02-16 18:23:55 · 299 阅读 · 0 评论 -
算法——组合数学——二项式定理
当 n 较大,且需要取模时,二项式系数有两种计算方法:一:递推公式二:逆原创 2024-02-16 16:33:13 · 591 阅读 · 0 评论 -
算法——前缀和
前缀和用于快速计算数组中某个区间的和。前缀和的主要思想是将数组中每个位置之前所有元素的和预先计算并存储起来,形成一个新的数组。原创 2024-02-16 00:49:00 · 858 阅读 · 0 评论 -
算法——数论——快速幂
快速幂是一种用于快速计算幂运算的算法。计算复杂度 O(log n)基本思想是利用指数 n 的二进制展开形式,将转化为多个 a 的幂的乘积,然后通过迭代快速计算。原创 2024-02-15 16:42:26 · 449 阅读 · 0 评论 -
算法——数论——GCD和LCM
GCD(最大公约数),LCM(最小公倍数)原创 2024-02-08 17:42:25 · 1961 阅读 · 0 评论 -
数据结构——队列
队列(queue)是一种先进先出(First In First Out,FIFO)的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。原创 2024-02-03 20:47:48 · 1179 阅读 · 0 评论 -
杂题——试题 算法训练 区间最大和
如果使用两个for循环遍历所有情况,运行会超时解决运行超时的关键点在于:及时停止累加,丢弃当前的子序列比如【1,-2,3,10】从第一个数字开始的子序列的和小于从第三个数字开始的子序列的和因为第一到第二的和 sum原创 2024-02-01 23:37:29 · 231 阅读 · 0 评论 -
杂题——试题 算法训练 试题3971 丑数
判断一个数 n 是否是丑数,分成三个部分1、寻找因数,从2遍历到 n,如果该数 i 是 n 的因数,就进入下一步2、判断 i 是否是质数,这部分代码直接套用即可,见得较多3、最后判断 i 是否等于2或3或5,如果等于,n 即为丑数原创 2024-02-01 22:04:42 · 230 阅读 · 0 评论 -
杂题——试题-算法训练-P0602
分析:把要重排序的数字转成数组对数组进行排序,从小到大排序数组转成字符串,字符串转成数字,得到最小数再把最小数的字符串反转,得到最大数原创 2024-02-01 21:07:55 · 245 阅读 · 0 评论 -
杂题——试题-算法训练-P0604-runaround数
题目有三个关键点:一:结束时,回到起始位置(比较结束时和起始时的下标位置是否相同)二:该整数的所有数字都必须遍历一遍,且只能遍历一遍(把遍历过的数字做个标记)三:要走的步数超出整数的长度时,应该选择取余绕回整数的最左,而不是作减法,因为作减法后可能仍然超出整数长度原创 2024-02-01 19:56:14 · 255 阅读 · 0 评论 -
算法——线性代数——逆序数奇偶
求一个排列的逆序数奇偶性有两种方法,一种是从前往后遍历数组,另一种是从后往前遍历数组从前往后时,当前数字前面大于它的数字的个数即为它的逆序数个数从后往前时,当前数字前面小于它的数字的个数即为它的逆序数个数把排列所有数字的逆序数个数相加,即为当前排列的逆序数个数,如果该数为偶数,则为偶性,为奇数,则为奇性原创 2024-01-31 02:04:36 · 1669 阅读 · 0 评论 -
杂题——试题-算法训练-P0802-字符串表达式求解
分析:1、读取表达式字符串2、用 StringBuffer 类型的变量 sb 把读取到的数字拼接成字符串3、每当遇到一个运算符,就把拼接成的 sb 字符串转成数字 number2,用上一个运算符进行运算。然后把当前的运算符保留下来,更新运算符4、处理边界原创 2024-01-16 14:46:36 · 463 阅读 · 0 评论 -
算法——广度优先搜索(BFS)
广度优先搜索(BFS)是一种用于图和树数据结构的搜索算法。它从图或树的根节点开始,逐层地向下搜索,并在同一层节点中完成搜索后再向下一层节点进行搜索。它通常使用队列来实现,在搜索过程中,将当前节点的邻居节点依次加入队列中,以确保按照层级顺序进行搜索。广度优先搜索常用于寻找图中的最短路径,广度优先搜索也可以用于许多其他问题,如检查图中是否存在特定节点或寻找所有可能的路径等问题。原创 2024-01-13 20:04:13 · 923 阅读 · 0 评论 -
算法——贪心法(Greedy)
贪心法把整个问题分解成多个步骤,在每个步骤都选取当前步骤的最优方案,直到所有步骤结束;在每一步都不考虑对后续步骤的影响,在后续步骤中也不再回头改变前面的选择。原创 2024-01-12 15:54:59 · 1675 阅读 · 0 评论 -
算法——深度优先搜索(DFS)、 递归
常用于求排列组合、遍历等问题原创 2023-12-23 15:42:37 · 1347 阅读 · 0 评论 -
算法——动态规划(DP)
动态规划通常用于求解最优化问题,如最长路径、最大值、最小值等。递归则更常用于遍历、搜索和排列组合等问题原创 2023-12-18 17:07:48 · 3886 阅读 · 0 评论 -
算法——双指针
双指针(Two Pointers):指的是在遍历元素的过程中,不是使用单个指针进行访问,而是使用两个指针进行访问,从而达到相应的目的。原创 2023-11-21 13:27:38 · 180 阅读 · 0 评论 -
数据结构——散列表
哈希表原创 2023-11-20 19:09:26 · 452 阅读 · 0 评论