GH Blog

「一个正在不断修炼的程序员」

Summary of structred concurrency

How to use structred concurrency? Only use these two keywords: async, await. You can make it. For Example: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 1. normal function func hello(_ input: Int) ...

DFS的思考

二叉树和多叉树的问题天生就会和分治和递归扯上千丝万缕的关系,那么DFS这类题应该具体怎么考虑呢?这里总结三种题型。 左右两边完全可以自己处理自己的数据,返回的数据也是单一的。 怎么理解这里的单一呢? 就是只需要返回一个值就能解决问题,这里举个模板: 1 2 3 4 5 6 7 8 9 10 11 12 13 func dfs(...

回文系列算法题总结

在我刚开始工作的时候,很多公司都喜欢考回文的算法,知道现在依旧很多大小厂都喜欢考这类题目,这里总结一下解法 1. 动态规划解题 –> 时间复杂度:(O(N^2)) 动态规划的问题重点就是:理清楚状态转移方程 计算最长回文子串算法题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...

二叉堆解决的问题

二叉堆能解决什么问题? 还是要有几个先决条件的。 需要数据之间是可以比较的。 解决类似找到第K个问题的。 我也写了一个Swift版本的二叉堆, 有兴趣的可以查看一下源码, 利用二叉堆,我们也可以实现优先队列(Priority Queue)其实JAVA中的队列就是用二叉堆来实现的。 二叉堆的两个问题,需要注意。 ...

二叉搜索树的解题套路

二叉搜索树是一种很特别、又很常用的一种的一种数据结构,同时它也很简单,因为它的定义不需要考虑平衡,所以解二叉搜索树的题一般会存在一个或者多个答案,一般只需要我们保证二叉搜索树的特性就可以了。 1.中序遍历 为什么这里重点说一下中序遍历呢?由于二叉搜索树的特性所致,在对二叉搜索树中序遍历之后,会得到一个递增的数组,它的时间复杂度是O(n), 中序遍历很简单,我就说一下模板: 1...

读《Effective Objective-C2.0》的一些思考🤔

闲来无事,最近没事会看看书,其实书有很多,但是能称得上好书却不是很多:啥事好书呢? 我认为,好书能够给不同层次的人给予思考。因为这样思考出来的东西,就不仅仅是书面知识所传授的, 下面会列举一下好书中好的东西【1. 当然这一点的理解很主观 2. 好书里面也会存在冗余】,以及一些我个人的思考🤔 正常些OC的人肯定听过《Effective Objective-C2.0》【这本书...

二叉树/多叉树 层序遍历解题套路

二叉树、多叉树个人认为是最考验一个递归思考算法的一种题型,今天就总结一下关于层序遍历的总结吧! 先看一下二叉树的定义: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * Definition for a binary tree node. */ public class TreeNode { public var val: Int ...

都已经iOS13了,UICollectionView应该这么写了!

最近看到ios ray一篇关于iOS新特性的一篇文章,感觉还是挺有收获的,以此记录一下,iOS13 新出的一些关于UICollectionView最新的API使用的问题: 1. 概念 iOS13, 重新梳理的关于CollectionView的一些概念性的东西,我觉得这个是非常核心的以此重构设计。现在整个UICollectionView分为下面三级结构: Section > Gr...

被遗忘的Git命令参数

撤销操作: 1 git reset --soft xxx[hash 值],--soft指撤销提交,但是保留对文件的修改。--hard值撤销提交,且不保留文件的修改。 提交之前,撤销某个文件的内容: 1 git checkout -- <file>文件路径 将此次提交记录合并到上一次去: 1 git commit --amend ...

关于链表LinkedList解题心得

关于链表,近期在刷题的时候发现,它还是有操作的套路可言的,不见得所有的题目都能套上模板,但是已经能解决60-70%的链表题型了。套路模板如下: 入参给你个ListNode, 也可以有其他参数,根据条件返回他指定类型的链表。 需要临界值的判断。 (可以建立一个dummp节点),为了简化操作 遍历循环 【4.1: 先报值保留下来 4.2:迭代】 返回dummp.nex...