HusterHaoYoung / algorithm

算法记录

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LeetCode

LeetCode Algorithm

# Title Solution Difficulty Keys note
54 螺旋矩阵 Java medium 使用一个level变量记录循环层数,分为四个方向的循环,即右下左上,每循环一次判断是否该退出循环 数组、模拟
25 K 个一组翻转链表 Java hard 24题的变式,使用一个指针记录上一次翻转的尾节点,一个指针记录这一次翻转的尾节点,注意翻转一次后链表断裂 链表
24 两两交换链表中的节点 Java medium 使用一个tail指针每次记录上一次交换的指针位置,新建一个虚拟头结点来解决头结点交换问题 链表
21 合并两个有序链表 Java easy 方法一:迭代法,使用一个假的头结点简化代码。
方法二:递归法,终止条件:l1为空或者l2为空。递归体:链表头选择与连接。
链表、递归
20 有效的括号 Java easy 使用栈,左括号进栈,右括号出栈匹配
19 删除链表的倒数第N个节点 Java medium 快慢指针法达到一次循环解决问题,即快指针先走n - 1步,快指针走到最后一个节点时,慢指针即为要删除节点,使用一个临时变量存储慢指针的前一个指针即可 快慢指针法
18 四数之和 Java medium 两重循环加双指针 双指针法
17 ×××电话号码的字母组合 Java medium 回溯法,×××××暂时还不会 ××××××××
16 最接近的三数之和 Java medium 15题变形 双指针法
15 三数之和 Java medium 外层循环,加双指针,注意去重 双指针法
14 最长公共前缀 Java easy 使用String的startWith方法,使用二分法加快查找效率,注意二分法边界问题 二分法
13 罗马数字转整数 Java easy 12题的变形 常量编码技巧
12 整数转罗马数字 Java medium 使用数组储存常量使代码简约 常量编码技巧
11 盛最多水的容器 Java medium 双指针法:短的往中间移 双指针法
9 回文数 Java easy 反转一般的数字,判断反转后的数字和剩下的数字是否相等(偶数位数),或者除10是否相等(奇数位数) 回文数
8 字符串转换整数 Java medium 注意数字越界问题,跳过空格,使用set集合判断是否是数字 整形数字越界
7 整数反转 Java easy 注意大数越界情况即可 整形数字越界
6 Z 字形变换 Java medium 按行进行排序,rowNums行的字符容器,当到底或者到头时改变方向添加 数学规律
5 最长回文子串 Java medium 1.最长公共子串法,即将字符串倒转过来之后与原字符串求最长公共子串,需要注意匹配上后还需检查是否是原字符串倒转前的位置
2.中心扩散法
中心扩散法
3 无重复字符的最长子串 Java medium 滑动窗口,使用HashMap来查找是否存在重复元素和重复元素位置(数组,滑动窗口) 滑动窗口
2 两数相加 Java medium 相加时注意进位,将两个链表虚拟为等长,即将短的链表补足0,即l1==null?0:l1.val(链表) 链表
1 两数之和 Java easy 简单遍历即可

About

算法记录


Languages

Language:Java 100.0%