【Swift】刷题【LeetCode110】

题目描述代码实现class Solution { func isBalanced(_ root: TreeNode?) -> Bool { if root == nil { return true } return abs(maxDepth(root?.lef


【Swift】刷题【LeetCode78】

题目描述代码实现import UIKitfunc subsets(_ nums: [Int]) -> [[Int]] { var results = [[Int]]() for num in nums { for result in r


【Swift】刷题【LeetCode28】

题目描述代码实现import UIKitfunc strStr(_ haystack: String, _ needle: String) -> Int { var stack : String = haystack if needle.isEmpty {


【Swift】刷题【LeetCode454】

题目描述![]()代码实现import UIKitvar nums1 = [1,2]var nums2 = [-2, -1]var nums3 = [-1, 2]var nums4 = [0, 2]func fourSumCount(_ nums1: [Int], _ nums2: [Int], _


Swift语法学习--响应式编程框架Combine

基本概念代码import Combine/* Combine包含三个主要角色:Publisher发布者、operater操作符和subscriberi订阅者。发布者用于发布数据,操作符对发布的数据进行加工,最后由订阅者处理发布的数据 */// 将一个数组作为数据的发布者,遵循Publisher协议的


Swift语法学习--DispatchGroup管理线程组

代码import UIKit// 使用调度组可以将多个线程中的任务进行组合管理,可以设置当多个相同层次的任务完成之后,再执行另一项任务print ("Start!")// 初始化一个调度组对象let group = DispatchGroup()// 同时运行多个任务,每个任务的


Swift语法学习-- 创建二叉树BinaryTreeNode

代码import UIKit/* 二叉树的特点是:1、每个节点最多有两棵子树2、左子树和右子树是有顺序的,次序不能颠倒3、即使某节点只有一个子树,也要区分左右子树*/// 定义一个类作为二叉树中的节点class BinaryTreeNode{ var content: Int var l


Swift语法学习--链表LinkedList详解

代码import UIKit// 链表是一种物理存储单元上的非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接的次序实现的// 每个节点包括两个部分,一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。class LinkedListNode{ var conten


Swift语法学习--栈Stack和队列Queue详解

栈Stack代码import UIKit// 开发语言并没有提供内设的栈和队列,很多扩展类库都是使用泛型来实现栈或队列。采用数组来实现栈和队列等数据结构// 首先定义一个指定名称的类,用来模拟一个栈。// 栈是一种后进先出的线性结构,可以简单理解为一叠碗,哪只碗最后放上去的,下次使用时,它最先被抽出