首页
Jovins
取消

两个数之和

给一个整型数组和一个目标值,判断数组中是否有两个数字之和等于目标值 这道题是传说中经典的2Sum,我们已经有一个数组记为nums,也有一个目标值记为target,最后要返回一个Bool值。 最粗暴的方法就是每次选中一个数,然后遍历整个数组,判断是否有另一个数使两者之和为target。这种做法时间复杂度为O(n^2)。 采用集合可以优化时间复杂度。在遍历数组的过程中,用集合每次保...

Swift可选类型Optional的用法

Optional let optional: String? = "unicorn" var optional2: Int? let optionals: [String?] = ["unicorn", nil, "dragon"] var optionals2: [Int]? if let let optional: String? = "unicorn" if let value...

组件化开发之开发小组件

前言 概念: 将一个单一工程的项目,分解成为各个独立的组件,然后按照某种方式,任意组织成一个拥有完整业务逻辑的项目。 产生原因: 如果是单一工程,业务比较少,人数比较少,一般的开发模式没有任何问题。但是一个项目发展慢慢庞大是,业务主线增多,开发人员增多,就会暴露出一系列问题。如: 耦合比较严重、编译速度慢、测试不独立、无法使用自己擅长的设计模式等等。 组件化可达到的效果: ...

fastlane自动化开发组件

一、什么是自动化: 通过简单的一条命令, 去自动执行一组固定操作. 二、自动化使用场景: 测试、打包上传审核、分发等. 自动化实现方案 fastlane Fastlane是一个ruby脚本集合. 使用概念 Action机制: Action是Fastlane自动化流程中的最小执行单元,体现在Fastfile脚本中的一个个命令。比如:cocoapods, git_add等等...

iOS内存管理探究

iPhone 作为一个移动设备,其计算和内存资源通常是非常有限的,而许多用户对应用的性能却很敏感,卡顿、应用回到前台丢失状态、甚至 OOM 闪退,这就给了 iOS 工程师一个很大的挑战。 网上的绝大多数关于 iOS 内存管理的文章,大多是围绕 ARC/MRC、循环引用的原理或者是如何找寻内存泄漏来展开的,而这些内容更准确的说应该是 ObjC 或者 Swift 的内存管理,是语言层面带来的特...

动态规划

本节主要讲的是动态规划,其面对的问题通常是无法一蹴而就,需要把复杂的问题分解成简单具体的小问题,然后通过求解简单问题,去推出复杂问题的最终解。 思想 大事化小,小事化了。把一个复杂的问题分阶段进行简化,逐步化简成简单的问题。 概念 1、动态规划 动态规划(Dynamic Programming)指的是解最优化问题的一种方法。 2、最优子结构性质 问题的最优解可以分解为若干子问题...

搜索

搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。现阶段一般有枚举算法、深度优先搜索、广度优先搜索、A算法、回溯算法、蒙特卡洛树搜索、散列函数等算法。 二分搜索 基本思路 在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找; ...

二叉树

树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列。在学习与总结的同时更加深入的了解掌握二叉树。本系列文章将着重介绍一般二叉树、完全二叉树、满二叉树、线索二叉树、霍夫曼树、二叉排序树、平衡二叉树、红黑树、B树。希望各位读者能够关注专题,并给出相应意见,通过系列的学习做到心中有“树”。 本期的内容有: ...

栈和队列

在Swift中没有设的栈和队列,很多扩展库中使用Generic Type来实现栈和队列。正规的做法是用链表来实现,这样可以保证加入或者删除的时间复杂度是O(1)。然而,我觉得最实用的实现方法是使用数组,因为Swift没有现成的链表,而数组又有很多的API可以使用,非常方便。 栈和队列的基本概念 对于栈来说,我们需要了解以下几点: 栈是后进先出的结构。你可以理解成有好几个盘子要垒成...

链表

链表的基本概念 链表是一组节点组成的集合,每个节点都使用一个对象的引用来指向它的后一个节点。指向另一节点的引用讲做链. 链表实现了,内存零碎数据的有效组织。比如,当我们用 malloc 来进行内存申请的时候,当内存足够,但是由于碎片太多,没有连续内存时,只能以申请失败而告终,而用链表这种数据结构来组织数据,就可以解决上类问题。 静态链表 #include <stdi...