算法
文章平均质量分 59
倔强的加瓦
这个作者很懒,什么都没留下…
展开
-
对于迷宫问题的汇总总结
1查找出岛屿的数量class Solution { public int numIslands(char[][] grid) { //记录下当前岛屿的数量 int m=grid.length; int n=grid[0].length; int result=0; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){原创 2022-05-08 21:57:44 · 960 阅读 · 0 评论 -
算法题对排序的总结
1首先是对数组的排序对于常数类型的数组,升序排列Arrays.sort(arr);对于char类型的数组,要保证大小写一致Arrays.sort(chars);对于自定义的数组class Solution { public int[][] merge(int[][] intervals) { //也就是说,如果一个数组的最大值小于另一个数组的最小值,就是需要重叠,去重 //首先,先将数组中一第一个数进行排序 Arrays.sort(int原创 2022-04-01 20:36:32 · 518 阅读 · 0 评论 -
剑指offer和leetcode的刷题总结
链表复杂链表的复制需要注意的点就是1有可能节点会没有random指针,因此需要排除那种情况在进行复制随机指针2在两个链表拆分的时候,需要指定,有可能原链表temp走到了最后一个的情况,需要进行排除删除链表中的重复节点需要注意区分相等的情况和不相等的情况树二叉树的之字打印借助双端队列来实现bfs,每一次先判断每一层有多少个元素,然后依次出队列加到链表中。根据中序遍历和前序遍历数组,还原其树注意Arrays.copyOfRange()的使用,是左闭右开的比较树的子原创 2022-03-23 22:50:43 · 585 阅读 · 0 评论 -
八大排序算法的总结
八大排序算法的总结原创 2021-07-25 17:40:58 · 82 阅读 · 0 评论 -
时间复杂度
前一段时间以为自己Java学的不错就出去面试了,打算找一个暑期实习锻炼一下自己,本来以为开发做后端Java程序员可以跳过算法这些东西,结果面试官上来就问了时间复杂度的概念,因为本科学的不是计算机专业所以直接蒙圈,也给面试官留下了很不好的印象,后面问到java集合,redis等存取元素的时候,又问到了时间复杂度等概念,真是一步走不好,步步走不好,2021年暑假到了,从今天开始学习数据结构与算法,从哪跌倒就从哪爬起来,开始恶补算法和数据结构知识啦!下面步入正题:想要了解时间复杂度,必须要了解时间频度的概念1原创 2021-07-06 12:05:23 · 409 阅读 · 0 评论 -
八大排序算法之7基数排序(桶排序)算法
基数排序算法基数排序算法的实现基数排序算法的思路粗暴的代码实现真正的基数排序算法:基数排序算法的实现基数排序算法的思路基数排序又叫做桶排序,因为每一个存放位数的数组可以看成一个个的桶,来存放元素进行排序。先从给出的数组中求出每一个数的个位数,按照各位数的大小依次求出数组中每一个数的十位数,按照十位数的大小进入相应的桶中求出数组中每个数的百位数,按照百位数的大小进入相应的桶中从图中可以看出,当百位排完之后,就可以实现从小到大的排序。粗暴的代码实现我觉得最难理解的就是这个原创 2021-07-21 09:59:46 · 123 阅读 · 0 评论 -
八大排序算法之5快速排序算法
快速排序算法的实现快速排序算法的思路代码展示快速排序算法的思路要实现一个算法之前,不是上来就开始分析代码是怎么写的,最重要的一定是先了解这个算法的具体思路!!!一些复杂高大上难过的算法,只要先能了解其算法的步骤,可能自己直接可以写出来,比如这个快速排序算法!!!给定一个无序的数组,利用快速排序算法的思路如下:先从数组中选择一个基准数,一般选取数组最左边这个数两个辅助的指针i和j,来记录扫到的数a[i]与a[j]和基准数进行比较从最左边确定基准数后,就从右边开始搜索和基准数作比较,如果原创 2021-07-19 22:43:17 · 106 阅读 · 0 评论 -
八大排序算法之4希尔排序算法
希尔排序希尔排序算法算法思路1希尔排序使用交换法的粗暴的代码实现2用交换排序法的希尔排序算法3利用插入排序法的希尔排序算法希尔排序算法算法思路希尔排序算法是于1959年提出的一种排序算法,也称作是一种插入排序算法,是简单的插入排序算法的一种改进,也成为缩小增量排序基本思路:希尔排序是把记录按下标的一定增量分组,对每一个组内进行插入排序算法,随着增量(由4组变成2组最后在变成1组)逐渐减小,每一组中包含的关键词越来越多,当增量减至1时,整个文件就被分成一组,在进行排序之后,算法就被终止。1希尔排序原创 2021-07-19 14:33:08 · 267 阅读 · 0 评论 -
八大排序算法之3插入排序算法和其优化
插入排序算法插入排序算法思路插入算法粗暴实现真正的插入算法插入排序算法的优化插入排序算法思路给定一个无续的数组,对其进行排序,思路如下相当于用两个数组进行排序,一个是无序的,一个是有序的,每次从无序数组中拿出一个数,与有序的数组中的数进行比较,确定插入的位置后插在有序数组中,最后输出有序数组即可:首先从无序数组中取出第一个数直接放在有序数组中,放到第一个位置。然后从无序数组中拿出第二个数,先与有序数组中的数进行比较,如果此数较大,则放在有序数组中那个数的后面,如果此数小,则放在前面从无序数组中原创 2021-07-18 21:35:42 · 152 阅读 · 0 评论 -
八大排序算法之1冒泡排序算法和其优化(Java)
冒泡排序算法和其优化冒泡排序算法冒泡排序算法思路介绍粗犷的代码实现冒泡排序算法代码实现冒泡排序算法的优化冒泡排序算法冒泡排序算法思路介绍任意给定一个数组,假设里面的数据有n个:第一次,目的是把数组中最大的数找出来。此时只需要比较n-1次,因为是两个数为一组比较。找到最大的数后并且类似于冒泡的形式(故叫做冒泡排序),放到数组的最后第二次,目的是找到数组中第二大的数。因为已经找到最大的数,故只需要比较n-1个数就可以,从这n-1个数中找到最大的,只需要比较n-2个数即可,然后以类似于冒泡的方式放到数原创 2021-07-17 22:17:39 · 102 阅读 · 2 评论