AndyCao Blog

Thinking will not overcome fear but action will.

删除排序链表中的重复元素

一天一道算法题

题目 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例1 输入: 1->1->2 输出: 1->2 示例2 输入: 1->1->2->3->3 输出: 1->2->3 定义节点 class ListNode { public var val: Int public var next: ListNo...

swift5-属性

1. 属性 在swift中,跟实例相关的属性,可以分为2大类: 存储属性(stored property) 类似于成员变量这个概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性 计算属性(computed property) 本质是方法(函数) 不占...

移除链表元素

一天一道算法题

题目 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 输入: 1->1 val = 1 输出: nil 定义节点 class ListNode { public var val: Int public...

swift5-流程控制

if if 后面的条件可以省略小括号,条件只能是Bool类型 let age = 20 if age > 20 { print("20多岁了") } else if age < 10 { print("小孩子") } else { print("年轻人") } // 以下写法将不会编译通过(if 条件只能是Bool类型) if age { } wh...

判断一个链表是否有环

一天一道算法题

题目 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例1 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例2 输入:head = [1,2], pos = 0 输出:...

反转链表

一天一道算法题

先定义一个单向链表 public class ListNode { public var val: Int public var next: ListNode? public init(_ val: Int) { self.val = val self.next = nil } } 迭代法 依次遍历每个结点,将该结点 n...

复杂度分析

数据结构与算法

在讲复杂度分析之前,先理一下,什么是数据结构与算法,以及数据结构与算法之间的关系。 什么是算法与数据结构 数据结构,是指一组数据的存储结构;算法,就是操作一组数据的方法。 数据结构和算法,是相辅相成的。数据结构,是为算法服务的;算法,是要作用在特定的数据结构之上。 使用不同的算法,解决同一个问题,效率可能相差非常大。 比如,求第n个斐波那契数(fibonacci number) /**...

swift5-闭包

闭包表达式: closure expression 闭包表达式,其形式如下: { (参数列表) -> 返回值类型 in 函数体代码 } 通过 in 将函数体代码和(参数列表与返回值类型)区分开来 在swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数 func的形式 func sum(_ v1: Int, _ v2: Int...