Skip to content

Binlogo-Archive/LeetCode-Swift-Track

Repository files navigation

LeetCode-Swift-Track

LeetCode 💖 Swift,攻克数据结构算法

宣言早搞晚搞,迟早要搞,干就是了! Just Do IT!

开始练习

  1. LeetCode 探索
  • -> 选择一个「数据结构」或「算法」卡片

  • -> 学习相关概念

  • -> 提炼记录必要笔记

  1. 打开 LeetCodePlayground.playground 练习步骤1)的卡片中的一道算法题

  2. 在 LeetCode 测试并完成算法题的提交

  3. 补充算法要点与简单描述

  4. 单独提交 Swift 文件并更新 README 以便在 GitHub 查看

数据结构

数据结构是为算法服务的

数组

标题 标签 描述 题解
1. 两数之和 数组 哈希表 给定一个整数数组和目标值,找出和为目标值的那两个整数。 Swift
724. 寻找数组的中心索引 数组 给定一个整数数组,找出「中心索引」 Swift
747. 至少是其他数字两倍的最大数 数组 查找数组中的最大元素是否至少是数组中每个其他数字的两倍。 Swift
66. 加一 数组 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 Swift
498. 对角线遍历 数组 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素 Swift
118. 杨辉三角 数组 给定一个非负整数 _numRows,_生成杨辉三角的前 numRows Swift
283. 移动零 数组 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 Swift
27. 移除元素 数组 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 Swift
26. 删除排序数组中的重复项 数组 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 Swift
75. 颜色分类 数组 排序 双指针 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 Swift
215. 数组中的第K个最大元素 数组 排序 多指针 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 Swift
88. 合并两个有序数组 数组 双指针 给定两个有序整数数组 nums1nums2,将 nums2 合并到 nums1 中_,_使得 num1 成为一个有序数组。 Swift
167. 两数之和 II - 输入有序数组 数组 双指针 二分查找 给定一个已按照**_升序排列_** 的有序数组,找到两个数使得它们相加之和等于目标数。 Swift
125. 验证回文串 数组 指针碰撞 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 Swift
345. 反转字符串中的元音字母 数组 指针碰撞 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 Swift
11. 盛最多水的容器 数组 双指针 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 Swift
209. 长度最小的子数组 数组 双指针 二分查找 给定一个含有 n 个正整数的数组和一个正整数 **s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。**如果不存在符合条件的连续子数组,返回 0。 Swift
695. 岛屿的最大面积 数组 深度优先搜索 找到给定的二维数组中最大的岛屿面积 Swift
45. 跳跃游戏 II 数组 贪心算法 使用最少的跳跃次数到达数组的最后一个位置 Swift
560. 和为K的子数组 数组 哈希表 给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。 Swift
15. 三数之和 数组 双指针 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? Swift

字符串

标题 标签 描述 题解
67. 二进制求和 字符串 数学 给定两个二进制字符串,返回他们的和(用二进制表示)。 Swift
3. 无重复字符的最长子串 哈希表 双指针 字符串 滑动窗口 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 Swift
14. 最长公共前缀 字符串 编写一个函数来查找字符串数组中的最长公共前缀。 Swift
93. 复原IP地址 字符串 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 Swift
71. 简化路径 字符串 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 Swift

链表

标题 标签 描述 题解
24.两两交换链表中的节点 链表 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 Swift
707. 设计链表 链表 设计链表的实现。您可以选择使用单链表或双链表。 Swift
19. 删除链表的倒数第N个节点 链表 双指针 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 Swift
203. 移除链表元素 链表 删除链表中等于给定值 val 的所有节点。 Swift
328. 奇偶链表 链表 多指针 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。 Swift
234. 回文链表 链表 双指针 判断一个链表是否为回文链表。 Swift
2. 两数相加 链表 数学 给出两个 非空 的链表用来表示两个非负的整数。 Swift
21. 合并两个有序链表 链表 将两个有序链表合并为一个新的有序链表并返回。 Swift
61. 旋转链表 链表 双指针 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 Swift
25. K 个一组翻转链表 链表 给定一个链表,每 k 个节点一组进行翻转,返回翻转后的链表。 Swift

标题 标签 描述 题解
1003. 检查替换后的词是否有效 字符串 按给定规则检查替换后的词有效性 Swift
71. 简化路径 字符串 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 Swift
155. 最小栈 设计 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 Swift
20. 有效的括号 字符串 给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。 Swift
739. 每日温度 哈希表 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。 Swift
150. 逆波兰表达式求值 根据逆波兰表示法,求表达式的值。 Swift

队列

标题 标签 描述 题解
622. 设计循环队列 设计 队列 设计循环队列实现 Swift

散列表

标题 标签 描述 题解

二叉树

标题 标签 描述 题解
98. 验证二叉搜索树 深度优先搜索 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 Swift
236. 二叉树的最近公共祖先 深度优先搜索 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 Swift
102. 二叉树的层序遍历 广度优先搜索 给定一个二叉树,返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 Swift

标题 标签 描述 题解

跳表

标题 标签 描述 题解

标题 标签 描述 题解

Trie-树

标题 标签 描述 题解

算法

算法要作用在特定的数据结构之上

递归

标题 标签 描述 题解

排序

标题 标签 描述 题解
274. H指数 排序 哈希 给定论文被引用次数的数组。编写一个方法,计算出研究者的 h 指数。 Swfit
912. 排序数组 排序 数组 给你一个整数数组 nums,请你将该数组升序排列。 Swift

二分查找

标题 标签 描述 题解
33. 搜索旋转排序数组 数组 二分查找 按照升序排序的数组在预先未知的某个点上进行了旋转,在该数组中查找目标值 Swift
4. 寻找两个正序数组的中位数 数组 二分查找 分治算法 给定两个大小为 m 和 n 的正序数组 nums1 和 nums2。找出这两个正序数组的中位数 Swift

搜索

标题 标签 描述 题解

哈希算法

标题 标签 描述 题解

贪心算法

标题 标签 描述 题解
45. 跳跃游戏 II 数组 贪心算法 使用最少的跳跃次数到达数组的最后一个位置 Swift

分治算法

标题 标签 描述 题解

回溯算法

标题 标签 描述 题解

动态规划

标题 标签 描述 题解
53. 最大子序和 数组 动态规划 分治算法 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 Swift
983. 最低票价 动态规划 给定的列表 days 中列出的每一天的旅行所需要的最低消费。 Swift
221. 最大正方形 动态规划 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 Swift
152. 乘积最大子数组 数组 动态规划 给定一个整数数组 nums ,找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 Swift

字符串匹配算法

标题 标签 描述 题解
8.字符串转换整数 (atoi) 数学 字符串 实现一个 atoi 函数,使其能将字符串转换成整数 Swift
151. 翻转字符串里的单词 字符串 给定一个字符串,逐个翻转字符串中的每个单词。 Swift
880. 索引处的解码字符串 字符串余数 给定编码字符串,查找解码字符串中的第 K 个字母 Swift

Releases

No releases published

Packages

No packages published

Languages