算法
文章平均质量分 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 · 502 阅读 · 0 评论 -
leetcode-13.罗马数字转整数
文章目录leetcode-13.罗马数字转整数图-思路图-找罗马数字的规律代码代码-找罗马数字的规律demo下载路径参考 leetcode-13.罗马数字转整数 罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2原创 2021-08-22 11:36:33 · 157 阅读 · 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 · 349 阅读 · 0 评论 -
Leetcode 6. Z 字形变换-中等(图)
文章目录题目-7. 整数反转图-思路图-Z字形代码Z字形demo下载路径参考 题目-7. 整数反转 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。 请你实现这个将字符串进行指定行数变换的函数: strin原创 2021-07-18 23:28:53 · 236 阅读 · 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 · 130 阅读 · 0 评论 -
Leetcode 5. 最长回文子串
写下leetCode,每天一道,带上图,题目来源leetCode 文章目录题目-5. 最长回文子串图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置b代码二demo下载路径参考 题目-5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 图-思路 将两数组有顺序合并到一起(归并排序),然后选取中间的位置 这里用归并的排序合并成一个数组 b 代码 二 时间复杂度:对数组进行二分查找,因此为O(logN) 空间复杂度:O(1) demo下载路径 码云 参考 出处 .原创 2021-06-20 23:57:59 · 95 阅读 · 2 评论 -
Leetcode 4. 寻找两个正序数组的中位数-困难(带图)
写下leetCode,每天一道,带上图,题目来源leetCode 文章目录题目-4. 寻找两个正序数组的中位数图-思路将两数组有顺序合并到一起(归并排序),然后选取中间的位置图-二分法代码二分法demo下载路径参考 题目-4. 寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 图-思路 将两数组有顺序合并到一起(归并排序),然后选取中间的位置 这里用归并的排序合并成一个数组 归并排序请看这篇.原创 2021-06-13 23:15:02 · 395 阅读 · 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 · 227 阅读 · 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 · 584 阅读 · 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 · 279 阅读 · 7 评论 -
常用算法复杂度速查表
来源:CodeSheep 常用算法复杂度速查表,蹲坑的功夫都能背原创 2020-07-07 10:11:03 · 242 阅读 · 0 评论 -
发现leetcode排序很好看的动画
2 分钟带你掌握 10 种排序算法原创 2020-12-20 22:08:13 · 91 阅读 · 0 评论 -
堆排序
堆排序原创 2020-08-24 11:03:59 · 103 阅读 · 0 评论 -
桶排序
设置固定数量的空桶。 把数据放到对应的桶中。 对每个不为空的桶中数据进行排序。 拼接不为空的桶中数据,得到结果 放进去后进行桶排序 然后以按顺序展开每个桶原创 2020-08-24 11:00:37 · 98 阅读 · 0 评论 -
计数排序
找最小和最大的 新建数组,且记录重现次数,从左到晚记录次数 然后进行及次数排序,2打印两次原创 2020-08-24 10:54:37 · 105 阅读 · 0 评论 -
基数排序
将个位数从小到大排一下 将十位数从小到大排一下,从左右一个一个走 将百位数从小到大排一下,从左右一个一个走原创 2020-08-24 10:50:55 · 108 阅读 · 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 · 208 阅读 · 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 · 94 阅读 · 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 · 158 阅读 · 0 评论 -
希尔排序
希尔排序:以一定的间隔拿取数据,根据这些数据,进行插入排序 ,然后间隔越来越小。 拿取间隔,例子: 5/2=2,以间隔为2 5和间隔的数值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 · 226 阅读 · 0 评论 -
插入排序
1,插入排序,前面有序,后面无序,因此从第个开始算起,比较前面一个,比他小,移动位置 N为当前指向,向前比较,4<5,替换位置 N为当前指向,向前比较,4<5,替换位置,N指向下一个,目前4,5是有序的 2向前比较,2<5,替换位置 2继续向前比较,2<5,替换位置,2继续向前比较,2<4, 替换位置 目前2,4,5是有序的,N指针指向数字3 3向前比较,3<5替换位置 3继续向前,3<4,替换位置 3继续向前,3>2,不用替换位置,2,3,4,原创 2020-08-21 22:49:15 · 212 阅读 · 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 · 109 阅读 · 0 评论