![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 58
基础算法
Java骚哥
这个作者很懒,什么都没留下…
展开
-
算法40:移动零
学习了移动零算法我的想法,循环列表只要碰到0就用双指针方案调整0的位置,如果遇到同样是0 那就下一个在调整思维转换-不要只针对0去做调整,将非0 数据排序好,那么剩余的数据都是0算法兴趣+1 总:40加强了对算法的分析能力。原创 2023-08-10 10:29:44 · 274 阅读 · 0 评论 -
算法36:Excel表列名称
学习了Excel表列名称columnNumber–是真没想到,一直报错,后面时先判断如果为0就直接=26了开始想到的时和罗马数字转整数算法了,就先声明map了算法兴趣+1 总:36加强了对算法的分析能力。原创 2023-04-14 17:02:58 · 184 阅读 · 0 评论 -
算法35:相交链表
学习了相交链表双指针根本就没有想到,pA = pA == null 估计这个判断很多人都不知道咋回事哈希集合方案直接写出来了,感觉有点效果了,但这里还是用Set会更好写算法兴趣+1 总:35加强了对算法的分析能力。原创 2023-03-17 16:50:49 · 351 阅读 · 0 评论 -
算法34:二叉树的后序遍历
学习了二叉树的后序遍历递归方案技巧:前序遍历(添加放前面),中序遍历(添加放中间),后序遍历(添加放后面)Morris好萌,理解的不透彻迭代使用Stack堆的特性,循环翻倍Stack堆,先进先出,和队列是同样的,所以这里队列也可以做算法兴趣+1 总:34加强了对算法的分析能力。原创 2023-03-16 11:34:39 · 186 阅读 · 0 评论 -
算法33:二叉树的前序遍历(递归、迭代、Morris)
学习了二叉树的前序遍历递归方案技巧:前序遍历(添加放前面),中序遍历(添加放中间),后序遍历(添加放后面)Morris还是不能直接默写,感觉理解的还是不透彻迭代一开始蒙的,完全忘记了使用Stack堆的特性Stack堆,先进先出,和队列是同样的,所以这里队列也可以做算法兴趣+1 总:33加强了对算法的分析能力。原创 2023-03-08 17:36:28 · 121 阅读 · 0 评论 -
算法32:环形链表(有双指针)
学习了环形链表因为上一个算法,这个直接就想到用HashSet做了总结:只要有null就说明不是循环链表// 因为经过数学推算的公式:慢指针的速度为Vone 快指针的速度为Vtwo speedOne当前数S speedTwo当前数F 间距N// 因终要 S - F = N// 所以间距 = 1快慢指针可以条件可以更改,就换一种写法了,不过都是对节点判空,值得注意的是因speedOne.next = speedTwo,这里不用判断speedOne了算法兴趣+1 总:32加强了对算法的分析能力。原创 2023-03-07 15:42:57 · 133 阅读 · 0 评论 -
算法31:只出现一次的数字
学习了只出现一次的数字只写出了暴力破解,异或完全没想到…因为异或的特性,重复的值会在下次出现时删掉对方,这个特性很有用,但注意这里适用于int或Integer类型HashSet的应用学习算法兴趣+1 总:31加强了对算法的分析能力。原创 2023-03-03 11:51:26 · 196 阅读 · 0 评论 -
算法30:验证回文串
学习了验证回文串效率很低,还没想到效率高的学习了下Character类,这个是char的封装,也是工具StringBuffer会效率高些算法兴趣+1 总:30加强了对算法的分析能力。原创 2023-03-02 18:03:00 · 145 阅读 · 0 评论 -
算法29:买卖股票的最佳时机
学习了买卖股票的最佳时机一次遍历:时间复杂度:O(n) 空间复杂度O(1)全部计算一遍,保留最大值即可if-else-if 比 if-else消耗内存,如果非必要还是用if-else算法兴趣+1 总:29加强了对算法的分析能力。原创 2023-02-28 10:15:43 · 148 阅读 · 0 评论 -
算法28:杨辉三角 II
学习了杨辉三角 II线性递推需要注意类型转换,如果rowIndex = 30 就会超出int类型的容量,就会出问题线性递推公式 = 获取集合上一个值 * (行个数 - i + 1)/ i = 下一个数的值嵌套循环就是返回行坐标集合算法兴趣+1 总:28加强了对算法的分析能力。原创 2023-02-27 10:32:45 · 112 阅读 · 0 评论 -
算法27:杨辉三角
学习了杨辉三角这个还是比较简单的,要沉住劲,先写完最简单的形式,获取到前两个数要对,后面的慢慢调整就好算法兴趣+1 总:27加强了对算法的分析能力。原创 2023-02-24 10:35:35 · 61 阅读 · 0 评论 -
算法26:路径总和
学习了路径总和这个还是比较简单的,第一次梳理了下思路,并编写了出来,或许是因为这个逻辑并不复杂“||”特性:只要第一个条件为true,后面的条件就不再判断到了叶子节点也就是到了这条路线的终点,如果最后还是不想等就说明这条是死路,继续走其他路线了算法兴趣+1 总:26加强了对算法的分析能力。原创 2023-02-22 09:54:43 · 192 阅读 · 0 评论 -
算法25:二叉树的最小深度
学习了二叉树的最小深度有丝丝进步,递归的逻辑有些清晰了,但是自己写还是有难度的,感觉还是很迷,变下就乱了,还带提高left+right+1这里容易卡点,这里其实为了返回其中有一个为空或两都为空的情况,因为是null,所以会返回0,所以加起来也没事,得到的还是非null值+1,和我判断为空并返回对方值+1 的思路是一致的只有在两个子节点都在的情况下才会去比较min的值+1算法兴趣+1 总:25加强了对算法的分析能力。原创 2023-02-21 10:00:59 · 294 阅读 · 0 评论 -
算法24: 平衡二叉树
平衡二叉树的学习原创 2023-01-17 17:53:16 · 99 阅读 · 0 评论 -
算法23: 将有序数组转换为二叉搜索树
学习了二叉树的中序遍历算法原创 2023-01-10 10:37:07 · 226 阅读 · 0 评论 -
算法22: 二叉树的最大深度
仅用于学习,不用于商用原创 2022-08-18 15:11:47 · 377 阅读 · 0 评论 -
算法21: 对称二叉树
仅用于学习,不用于商用原创 2022-08-16 18:03:47 · 123 阅读 · 0 评论 -
算法20: 相同的树
仅用于学习,不做于商用原创 2022-08-11 08:53:47 · 166 阅读 · 0 评论 -
算法19: 二叉树的中序遍历
仅供学习原创 2022-07-30 11:19:19 · 318 阅读 · 0 评论 -
算法18: 合并两个有序数组
仅供学习,不做商用原创 2022-07-25 20:25:24 · 278 阅读 · 0 评论 -
算法17: 删除排序链表中的重复元素(升序链表去重)
仅用学习,欢迎指指点点原创 2022-07-16 10:37:08 · 1157 阅读 · 0 评论 -
算法16:爬楼梯
仅用于学习记录,不用于商用原创 2022-07-12 17:42:17 · 155 阅读 · 0 评论 -
算法15:x 的平方根
仅供学习,不做商用原创 2022-07-02 11:18:10 · 148 阅读 · 0 评论 -
算法14:二进制求和
学习所用原创 2022-06-29 19:51:23 · 277 阅读 · 0 评论 -
算法13:加一
用于记录学习,不用于商用原创 2022-06-28 17:56:20 · 177 阅读 · 0 评论 -
算法12:最后一个单词的长度
LC算法,仅用于学习原创 2022-06-28 13:43:22 · 417 阅读 · 0 评论 -
算法11:最大子数组和
用于学习记录,不做与商用,这里只有一种,还有一种未加入原创 2022-06-25 09:59:19 · 1018 阅读 · 0 评论 -
算法10:搜索插入位置
一.鄙人的解法需求:搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例3 :输入: [1,3,5,6], 2输出: 1示例4 :输入: [1,3,5,6], 0输出: 0代码运行主方法:入口import java.util.Arrays;impo原创 2021-04-25 16:48:38 · 123 阅读 · 0 评论 -
算法9:移除元素
一.鄙人的解法需求:移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说原创 2021-04-23 16:57:22 · 76 阅读 · 0 评论 -
算法8:删除有序数组中的重复项
一.鄙人的解法需求:删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len原创 2021-04-22 17:47:02 · 106 阅读 · 0 评论 -
算法7:合并两个有序链表
一.鄙人的解法需求:合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均原创 2021-04-21 16:02:40 · 57 阅读 · 0 评论 -
算法6:最长公共前缀
一.鄙人的解法需求:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字原创 2021-02-10 17:13:07 · 137 阅读 · 0 评论 -
算法5: 罗马数字转整数
一.我的解法,思路在代码注释中需求: 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做原创 2021-02-08 18:44:47 · 89 阅读 · 0 评论 -
算法2: 求子数组最大平均数
一.我的解法,思路在代码注释中需求:求子数组最大平均数代码public class WzwTest{ public static void main(String[] args) { // 输入:[1,12,-5,-6,50,3], k = 4 int[] arr = { 1, 12, -5, -6, 50, 3 }; int k = 4; double arrayMaxAvg = getArrayMaxAvg(a原创 2021-02-04 17:45:24 · 404 阅读 · 0 评论 -
算法4:回文数
一.鄙人的解法需求:回文数这里写了三种解法比较一半的方式来实现 回文数要StringBuilder实现 回文数转字符串方法实现 回文数代码思路写在注释中public class WzwTest{ /** * 解算法 回文数 */ public static void main(String[] args) { // 输入:x = 121 int x = 120020; // 方原创 2021-02-07 16:31:57 · 105 阅读 · 0 评论 -
算法1:两数之和
一.鄙人的解法需求:两数之和思路写在注释中import java.util.HashMap; 2 import java.util.Map; 3 4 /** 5 * 算法:两数之和 6 * 7 * @author 王子威 8 * @date 2021/2/3 9 */10 public class Wzwsuanfa11 {12 public static void main(String[] args)13 {14 // 输入:n原创 2021-02-05 14:12:31 · 55 阅读 · 0 评论 -
算法3:整数反转
一.鄙人的解法需求:两数之和思路写在注释中import java.util.HashMap; 2 import java.util.Map; 3 4 /** 5 * 算法:两数之和 6 * 7 * @author 王子威 8 * @date 2021/2/3 9 */10 public class Wzwsuanfa11 {12 public static void main(String[] args)13 {14 // 输入:n原创 2021-02-04 18:02:30 · 70 阅读 · 0 评论