首页
Jovins
取消

接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 思路 这道题真正难点在于: 在一个位置能容下的雨...

报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二...

IGListKit 框架学习

前言 在我们日常的iOS开发中,经常会用到UITableView/UICollectionView,由于复用缓存池的存在,在处理庞大数据的情况下,列表还是能保持较低的内存占用,而且简单的DataSource/Delegate设计方式,可以通过几行的大卖就可以完成对UITableView/UICollectionView的数据和交互的相关配置。但是由于UITableView对界面布局的局限性...

Swift使用Webp动图

关于Webp WebP是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,是Google在2010发布的,WebP 的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量。具体规范参见: WebP Webp 编码参数 lossless: YES 为有损编码, NO 为无损编码。WebP 主要优势在于有损编码,其无损编码的性能和压...

Texture 笔记

闪烁问题 1.ASNetworkImageNode reload闪烁 原因: ASCellNode中包含有ASNetworkImageNode时,当这个cell reload,ASNetworkImageNode会异步从本地缓存或者网络请求图片,请求到图片后再设置ASNetworkImageNode展示图片,但在异步过程中ASNetworkImageNode会先展示Placeholder...

搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5...

移出元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并...

初识 Texture

为什么使用Texture UITableView/UICollectionView的优化一直是iOS应用性能优化重要的一块,在App列表滚动时仔细观察还是会感觉到有一定的掉帧现象,在一些复杂的列表上是无法达到60fps帧率的。造成掉帧的原因有很多,网上分析如下: CPU(主要是主线程)/GPU负担过重或者不均衡。 Autolayout布局性能瓶颈,约束计算时间会随着数量呈指数级...

ptrace反调试

iOS调试程序 LLDB调试是Xcode自带的调试工具,它既可以本地调试Mac应用程序,也可以远程调试iPhone应用程序。当使用Xcode调试iPhone应用程序时,Xcode会将debugsever文件复制到手机中,以便在手机上启动一个服务,等待Xcode进行远程调试,然后通过LLDB调试指令发给手机debugserver进行调试。 debugserver是通过ptrace函数调试应...

14-代码混淆

基本概念 什么是加固 加固是为了增加应用的安全性,防止应用被破解、盗版、二次打包、注入、反编译等。 常见的加固方式有 数据加密(字符串、网络数据、敏感数据)。 应用价格(二次加密) 代码混淆(类名、方法名、代码逻辑) 代码混淆 iOS程序员可以通过class-...