🔗 LeetCode 53 - Maximum Subarray
📌 题目描述给你一个整数数组 nums,请你找出一个具有最大和的 连续子数组,并返回其最大和。
🔍 示例123输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6。
💡 解题思路:动态规划(Kadane’s Algorithm)
dp[...
一、iOS 缓存策略(NSURLRequest.CachePolicy)缓存策略决定了 请求是否使用缓存,以及如何使用缓存。它在 NSURLRequest 初始化时设置,对 NSURLSession 和 NSURLConnection 都生效。
常见策略说明:
策略
描述
.useProtocolCachePolicy
默认策略,遵循 HTTP 协议头(如 Cache-Contro...
Mach-O 是 macOS 和 iOS 平台上使用的可执行文件格式。
Mach-O 文件格式用于 macOS 和 iOS 中的可执行文件、动态库和核心转储等。Mach-O 文件包含多个部分,每个部分都具有特定的结构和功能。
Mach-O 文件头Mach-O 文件的开始部分是文件头(MachHeader),它包含了文件的基本信息。文件头分为两种类型:32位(mach_header)和 64位...
🔗 LeetCode 3 - Longest Substring Without Repeating Characters
📌 题目描述给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。
示例:
123输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
💡 解题思路使...
AFNetworking 是基于 Apple 提供的 NSURLSession 和 NSURLConnection 封装的网络库(AFNetworking 3.0 以后完全基于 NSURLSession),它对网络请求、JSON/XML 解析、文件上传下载、网络监测等功能做了封装,使 iOS 开发者能够更方便地处理网络通信。
一、AFNetworking 架构总览AFNetwork...
包体积的影响包体积优化的必要性
下载转化率下降:每增加6M,应用下载转化率下降1%。
App Store限制:超过200MB的包,iOS 13以下用户无法通过蜂窝数据下载,iOS 13及以上用户需手动设置。
磁盘占用:大包体积占用更多存储空间,影响低存储用户。
用户下载意愿:大包体积减少用户下载意愿,尤其在蜂窝数据低数据模式下。
性能影响:包体积大增加启动时间和SIGKILL风险,降低基础体...
🔗 LeetCode 142 - 环形链表 II
📌 题目描述给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 null。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。
示例:
123输入:h...
一、NSURLSession 下载机制原理类型回顾:
NSURLSessionDataTask: 用于请求和响应小数据。
NSURLSessionDownloadTask: 用于下载大文件,支持断点续传。
NSURLSessionUploadTask: 用于上传数据。
对于断点续传,NSURLSessionDownloadTask 是唯一支持此功能的类型。
二、断点续传机制详解1. 如何...
性能分析-工具开源工具
FLEX (Flipboard Explorer) 是一个非常受欢迎的开源 iOS 内部工具,提供了强大的 UI,允许开发者在运行时检查应用的视图层次结构、网络请求、数据库、用户偏好设置等。适合开发者在应用内实时调试和检查性能问题。
XCTest XCTest 是 Apple 官方的单元测试框架,支持性能测试。开发者可以通过 measure 方法来衡量代码块的执行时间...
🔗 LeetCode 283 - Move Zeroes
📌 题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序不变。
示例:
12输入: [0,1,0,3,12]输出: [1,3,12,0,0]
💡 解题思路
用一个指针 lastNonZeroIndex 来记录下一个应该放非零元素的位置;
遍历一遍数组,遇到非零就放到该位置;
遍...