算法
文章平均质量分 51
LLLDa_&
这个作者很懒,什么都没留下…
展开
-
【链表】反转指定区间的链表
反转给定区间的链表,需要首先定位到指定的区间,然后在切断区间前后的节点,然后对指定区间的链表进行反转,反转后在与之前切段的节点连接。注意:链表的实现Java对象,是一种引用类型,所以在对链表进行操作时,需要考虑引用类型的特殊性,变量通过指针指向对象的地址。将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度。例如:给出的链表为 1→2→3→4→5→。=4,返回 1→4→3→2→5→。数据范围: 链表长度 0原创 2023-01-30 17:06:20 · 651 阅读 · 1 评论 -
【链表】反转链表
反转链表要求我们不分配额外的空间,使链表进行反转。题目分析链表的节点结构如下: class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; }...原创 2022-03-30 14:28:17 · 1062 阅读 · 1 评论 -
【排序算法】快速排序
介绍快速排序算法的思想是通过一个哨兵元素,将所有比这个哨兵元素小的放在一边,比哨兵元素大的放在另一边,然后在分别对两边的元素进行排序。从这段简单的描述中我们可以看出,快速排序算法有分治的思想在里面。算法实现给定一个无序的数组:int[] arr = {72,6,57,88,60,42,83,73,48,85};1、默认第一的元素为哨兵,此时哨兵为pivos=722、定义两个指针,low 和high,low 指向数组的0号位,high指向数组的length-1位,也就是最后一位。3、移动两个原创 2022-03-29 11:04:45 · 408 阅读 · 0 评论 -
【链表】环形链表
环形链表的问题是链表中非常经典的一个算法题。环形链表链表的结构是由一个个节点连接起来而得到的一种数据结构!每个节点中记录着下一个节点的地址。循环链表就是指节点中形成了一个环。如下图:判断链表中是否存在环,一个经典的方法就是通过快慢指针来判断!思路首先来说说什么是快慢指针。快指针:每次移动两个或者多个节点慢指针:每次移动一个节点(移动的节点数要比快指针要小)为什么快慢指针能够判断链表中是否存在环呢?当我们让快指针和慢指针从头节点开始,进行移动,快指针每次移动两个节点,慢指针每次移动一个节点原创 2022-03-28 18:18:42 · 553 阅读 · 0 评论 -
【字符串算法】验证回文串
题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串解题什么是回文串回文串就是正向序列和反向序列是一样的字符串问题分析1、输入的字符串可能包含空格、特殊字符以及大小写字母我们需要将字符串处理成为一个只含有字母或者数字的一个字符串,这样才能方便我们进原创 2022-03-25 17:41:24 · 582 阅读 · 0 评论 -
【排序算法】冒泡排序算法优化
冒泡排序算法的思想是通过相邻元素的两两比较与位置交换最终将大的元素移到最右端。入门冒泡排序作为最简单的排序算法我们在理解他的思路后,很容易就写出下面的这样一个冒泡算法。public void sorted(int[] items){ int temp=0; for(int i=0;i<items.length-1;i++){ for(int l=0;j<items.length-i-1;j++){ if(items[j]>items[j+1]){ temp=it原创 2022-03-24 13:41:57 · 711 阅读 · 0 评论 -
【排序算法】浅析冒泡排序
什么是冒泡排序?对于升序排序来说,冒泡排序的实质,就是每次将最大的数排出来!具体的解释请戳 传送门下面有一组无序的数:3,6,4,1,2用冒泡进行排序:红色字代表已经排好序的1.将3和6进行比较,6>3,不进行交换,此时数列:3,6,4,1,22.6和4进行比较,6>4,将两者交换,此时数列:3,4,6,1,23.6和1进行比较,6>1,将两者交换,此时数列:3...原创 2018-12-14 20:18:37 · 222 阅读 · 10 评论 -
直接插入排序算法
What?将待排序列分为有序数列和无序数列,将无序数列中的数,与有序数列的数进行比较,将其根据大小插入有序数列,从而完成排序。how?待排序列:57,42,39,20划分数列:有序数列 | 无序数列 57 | 42,39,20外一趟: 42<57 true有序数列 | 无序数列 42,57 | 39,20...原创 2018-12-30 19:55:56 · 353 阅读 · 5 评论