![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 62
自行车在路上
加油
展开
-
leetcode-14.最长公共前缀(图)
文章目录leetcode-14.最长公共前缀图-思路图-横向扫描图-纵向扫描图-分治图-二分查找代码代码-横向扫描代码-纵向扫描代码-分治代码-二分查找demo下载路径参考leetcode-14.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输原创 2021-08-29 16:51:52 · 238 阅读 · 0 评论 -
leetcode-13.罗马数字转整数
文章目录leetcode-13.罗马数字转整数图-思路图-找罗马数字的规律代码代码-找罗马数字的规律demo下载路径参考leetcode-13.罗马数字转整数罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2原创 2021-08-22 11:36:33 · 97 阅读 · 0 评论 -
leetcode-9.回文数(图)
文章目录题目-9.回文数图-思路图-反转一半数字代码代码反转一半数字demo下载路径参考题目-9.回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3原创 2021-08-14 15:45:34 · 126 阅读 · 0 评论 -
Leetcode 6. Z 字形变换-中等(图)
文章目录题目-7. 整数反转图-思路图-Z字形代码Z字形demo下载路径参考题目-7. 整数反转将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:strin原创 2021-07-18 23:28:53 · 104 阅读 · 2 评论 -
Leetcode 7. 整数反转-简单
文章目录题目-7. 整数反转图-思路图-求%及判断临界值代码求%及判断临界值demo下载路径参考题目-7. 整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例1:输入:x = 123输出:321示例2:输入:x = -123输出:-321示例3:输入:x = 120输出:21示例4:原创 2021-07-18 22:18:15 · 110 阅读 · 0 评论 -
Leetcode 5. 最长回文子串
写下leetCode,每天一道,带上图,题目来源leetCode文章目录题目-5. 最长回文子串图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置b代码二demo下载路径参考题目-5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置这里用归并的排序合并成一个数组b代码二时间复杂度:对数组进行二分查找,因此为O(logN)空间复杂度:O(1)demo下载路径码云参考出处.原创 2021-06-20 23:57:59 · 74 阅读 · 2 评论 -
Leetcode 4. 寻找两个正序数组的中位数-困难(带图)
写下leetCode,每天一道,带上图,题目来源leetCode文章目录题目-4. 寻找两个正序数组的中位数图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置图-二分法代码二分法demo下载路径参考题目-4. 寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置这里用归并的排序合并成一个数组归并排序请看这篇.原创 2021-06-13 23:15:02 · 218 阅读 · 9 评论 -
Leetcode 3.无重复字符的最长子串(带图)
写下leetCode,每天两道,带上图,题目来源leetCode文章目录题目-3.无重复字符的最长子串图-思路代码demo下载路径参考题目-3.无重复字符的最长子串图-思路代码public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyHead = new ListNode(0); ListNode cur = dummyHead; int.原创 2021-06-12 17:07:56 · 131 阅读 · 8 评论 -
Leetcode 2. 两数之加(带图)
写下leetCode,每天两道,带上图,题目来源leetCode文章目录题目-1.两数相加(来源:leetCode)图代码参考题目-1.两数相加(来源:leetCode)图代码 /** * 暴力破解 * @param nums 数组 * @param target 目标 * @return */ public static int[] forceCracktwoSum(int[] nums, int target) { .原创 2021-06-06 17:27:15 · 563 阅读 · 12 评论 -
Leetcode 1. 两数之和(带图)
写下leetCode,每天两道,带上图,题目来源leetCode文章目录题目-1.两数之和(来源:leetCode)暴力破解图代码放进map里面比较图代码参考题目-1.两数之和(来源:leetCode)两数之和暴力破解图代码 /** * 暴力破解 * @param nums 数组 * @param target 目标 * @return */ public static int[] forceCracktwoSum(in.原创 2021-06-06 16:00:14 · 112 阅读 · 7 评论 -
常用算法复杂度速查表
来源:CodeSheep常用算法复杂度速查表,蹲坑的功夫都能背原创 2020-07-07 10:11:03 · 196 阅读 · 0 评论 -
发现leetcode排序很好看的动画
2 分钟带你掌握 10 种排序算法原创 2020-12-20 22:08:13 · 73 阅读 · 0 评论 -
堆排序
堆排序原创 2020-08-24 11:03:59 · 85 阅读 · 0 评论 -
桶排序
设置固定数量的空桶。把数据放到对应的桶中。对每个不为空的桶中数据进行排序。拼接不为空的桶中数据,得到结果放进去后进行桶排序然后以按顺序展开每个桶原创 2020-08-24 11:00:37 · 83 阅读 · 0 评论 -
计数排序
找最小和最大的新建数组,且记录重现次数,从左到晚记录次数然后进行及次数排序,2打印两次原创 2020-08-24 10:54:37 · 72 阅读 · 0 评论 -
基数排序
将个位数从小到大排一下将十位数从小到大排一下,从左右一个一个走将百位数从小到大排一下,从左右一个一个走原创 2020-08-24 10:50:55 · 78 阅读 · 0 评论 -
归并排序
归并排序:两个有序的数组合并成一个数组,指针I为第一个数组的开头,指针J为第二个数组的开头,比较两个元素,选择相对小的元素放入到合并空间,并移动指针到下一个分成两个数组,两个数组都是有序的比较大小2>1,1移到新数组里面,J指针往后一格比较大小3>2,2移到新数组里面,I指针往后一格比较大小4>3,3移到新数组里面,J指针往后一格比较大小9>4,4移到新数组里面,I指针往后一格比较大小9>5,5移到新数组里面只剩下数字9,放上去一般情况下,数组都不原创 2020-08-24 10:11:24 · 153 阅读 · 0 评论 -
选择排序
1,一开始指针在第一位,比较后面的数组,寻找最小位,然后跟第一位替换。2.第二次循环指针在第2位开始,N为now,I为现在的指向,min记录位置5<4,min记录数字4的位置跟min作比较,4<2,min记录数字2的位置跟min作比较,3<2,min还是2的位置,保持不变跟min作比较,8<2,min还是数字2的位置,保持不变循环一轮结束,min为数字2的位置,跟N指针数字5的位置替换下一轮循环,N指针指向数字4,以此类推...原创 2020-08-24 10:05:37 · 82 阅读 · 0 评论 -
快速排序
从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;这里以3为基准,L为左指针,R为右指针,L找比3大的,R找比3小的L:2<3 指针向右移动,4>3,找到比3大的了R:9>3,指针向左移动,1<原创 2020-08-24 09:58:16 · 122 阅读 · 0 评论 -
希尔排序
希尔排序:以一定的间隔拿取数据,根据这些数据,进行插入排序 ,然后间隔越来越小。拿取间隔,例子: 5/2=2,以间隔为25和间隔的数值2比较,5>2,需要换位置5和间隔的数值2比较,5<2,需要换位置,N指标到下一个,4间隔2的数字3作比较,4>3,换位置4<3,换位置,N指标指向下一个,5间隔2的数字8作比较5<8 不用替换位置,N指标指向下一个,下两个间隔没数字,拿取之前的间隔2/2=1作比较第二次N指标重新到第一位,间隔为1进行比较,2<.原创 2020-08-24 09:54:02 · 181 阅读 · 0 评论 -
插入排序
1,插入排序,前面有序,后面无序,因此从第个开始算起,比较前面一个,比他小,移动位置N为当前指向,向前比较,4<5,替换位置N为当前指向,向前比较,4<5,替换位置,N指向下一个,目前4,5是有序的2向前比较,2<5,替换位置2继续向前比较,2<5,替换位置,2继续向前比较,2<4, 替换位置目前2,4,5是有序的,N指针指向数字33向前比较,3<5替换位置3继续向前,3<4,替换位置3继续向前,3>2,不用替换位置,2,3,4,原创 2020-08-21 22:49:15 · 183 阅读 · 0 评论 -
冒泡排序
1,从左往右比较,随大就移动位置5>4,5和4替换位置,指向下一个比较5>2,5和2替换位置,指向下一个比较5<8,不用替换,这样,把最大的放在了后面,第一轮结束,第二轮类似继续比较4>3,4和3替换位置,指向下一个比较4<5,第二次循环结束,5和8拍好顺序了,依次类推,排好序...原创 2020-08-21 22:40:19 · 76 阅读 · 0 评论