![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode学习
文章平均质量分 77
iOSTerry
码农
展开
-
Swift 两数之和 - LeetCode
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定nums=[2,7,11,15],target=9,因为nums[0]+num[1]=target=2+7=9,所以返回[0,1].解决方法一暴力破解法:class Solution{ func twoSum(_nums:[Int],_ta...原创 2018-07-30 11:10:57 · 664 阅读 · 0 评论 -
Swift 求二叉树最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最小深度 2.我们用递归方法求,求法和求最大深度类似,比较一个节点的左右子节点,如果都不为空的话,取最小的子节点长度,如果一个子节点为空,则最小深度就是另一个子节点到根节点的长度...原创 2018-08-21 11:24:47 · 242 阅读 · 0 评论 -
Swift 求二叉树最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 解法一:递归法代码如下:/** * Definition for a binary tree node. * public class TreeNode {...原创 2018-08-20 10:13:01 · 334 阅读 · 0 评论 -
Swift 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。我们使用递归法解决此问题代码如下:/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNod...原创 2018-08-16 14:58:05 · 287 阅读 · 0 评论 -
Swift 加一
给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例:输入[1,2,3],输出[1,2,4]代码如下class Solution{ func onePlus(_digits:[Int])->[Int]{ ...原创 2018-08-13 15:19:05 · 285 阅读 · 0 评论 -
Swift 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 解法一算法思想是:由于合并后A数组的大小必定是m+n,所以从最后面开始往前赋值,先...原创 2018-08-08 16:11:34 · 1474 阅读 · 0 评论 -
Swift 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。我们可以采用递归的方法比较代码如下:先定义一个二叉树 //Definition for a binary tree node. public class TreeNode { public var val: Int public va...原创 2018-08-15 16:24:07 · 185 阅读 · 0 评论 -
Swift 最大子序和 - LeetCode
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解法一:暴力破解法,2重for循环,时间效率O(N^2)class Solution{ func maxSubArray(_n...原创 2018-08-07 15:22:43 · 209 阅读 · 0 评论 -
Swift 实现 strStr() 函数。 - LeetCode
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例:haystack=@"hello",needle=@"ll"输出返回 2class Solution{ func strStr(haystack:String,needle:Strin...原创 2018-08-02 17:49:08 · 276 阅读 · 0 评论 -
Swift 数组移除元素 - LeetCode
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例:nums=[3,2,2,3],val=3,执行方法后得到 的新数组是[2,2],长度为2class Solution{...原创 2018-08-02 16:41:39 · 4433 阅读 · 0 评论 -
Swift 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例:输入2 输出2 有两种爬发:一次爬2阶,爬一次;一次爬一阶,爬两次解法:最容易想到的是递归,代码如下:class Solution{ func chimbStairs(_n:Int)->Int{...原创 2018-08-14 14:09:37 · 5741 阅读 · 0 评论 -
Swift 搜索插入位置 - LeetCode
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1: [1,3,5,6], 5 → 2常规方法是遍历数组,在循环中设置查找条件,但是效率不高,这里我们用二分查找的思想实现代码如下:class Solution{ func searchInsert(_nums...原创 2018-08-06 14:30:21 · 267 阅读 · 0 评论 -
Swift 删除排序数组中的重复项 - LeetCode
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例:给定数组nums=[1,1,2],函数应该返回的长度为2,数组为[1,2]采用双指针法class Solution{ func removeDuplicates(num...原创 2018-08-01 17:38:35 · 1419 阅读 · 0 评论 -
Swift 回文数 - LeetCode
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。思路:反转回文数的一半的数字对比是否相同class Solution { func isPanlindrome(_x:Int)->Bool { var mx:Int = x 当x时负数时不可能是回文数,当x的最后一位数是0时,如果他...原创 2018-08-01 15:53:13 · 349 阅读 · 0 评论 -
Swift 反转整数 - LeetCode
给定一个 32 位有符号整数,将整数中的数字进行反转。注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。示例:输入: -123 输出: -321解决方法:class Solution{ func reverse ( _x:Int )->Int{ ...原创 2018-07-31 16:36:43 · 660 阅读 · 0 评论 -
Swift 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例:输入["flower","flow","flight"] 输出"fl"说明:所有输入只包含小写字母 a-z 。我们采用暴力破解法代码如下:class Solution{ func longestCommonPrefix(_ s...原创 2018-09-05 12:01:22 · 198 阅读 · 0 评论