实用的 GitHub 仓库搜索技巧 我们经常在 GitHub 上学习开源项目,但是 GitHub 众多的仓库总是会让我们眼花缭乱,不能在较短的时间里找到自己想要的项目。 这里分享一下我刚学到的 GitHub 仓库搜索技巧,在记录所学的同时,希望也对你有所帮助。
iOS - 利用 UIBezierPath 绘制圆弧 最近要写个「会话气泡」,由于没有找到合适的背景图片,所以需要直接用 UIBezierPath 进行绘制。期间用到之前还不太熟悉的绘制圆弧相关知识,于是写下此文进行记录。
Markdown 数学公式 个人写博客的时候,喜欢在文中加上一些数学公式,以提高文章 B 格。但是,我又经常会忘记部分公式的写法,就不得不上网查找,由于网上资料的质量参差不齐,经常会浪费不少时间进行检索。我认为这部分时间是可以被优化掉的,于是我决定写一篇自己的 Markdown 数学公式,以方便自己检索,同时也能帮助找有相同需求的人。
iOS - iPhone手机刘海屏判断 最近写毕业设计的时候,发现 iPhoneX 之后的刘海屏手机顶部状态栏高度和底部TabBar高度和原来不一样了,这就需要我们对刘海屏手机做单独的 UI 布局适配了
Shell - 脚本实现控制台一键编译运行 C++ 代码 由于电脑内存不足将 Clion 给卸载了,现在只能用 Vim 来编写 C++ 代码了。但是每次写完代码之后都需要经过「编译g++ test.cpp」和「执行./a.out」两步操作,感觉用起来比较繁琐。于是,我有了用 Shell 将这两条命令合成一个脚本简化执行的想法。
iOS - NSUserDefaults 实现简单数据的持久化保存 在开发的时候,我们经常会遇到一些场景,需要我们持久化保存一些数据。通常我们会将相对结构化的数据保存在远端或者本地的数据库中,而对于**相对零散**的变量数据,保存在数据库中是不太合适的。这时,接下介绍的NSUserDefaults就可以派上用场了~
Xcode 新项目删除 storyboard 文件 根据 storyboard 的优劣考虑,我决定采用纯代码的方式进行 UI 界面的开发。我需要删除新建项目中的 storyboard 文件,以著此文记录。
Xcode 11 新建项目适配 iOS 13 以下设备 Xcode 11 及以后版本新建项目都会多了一对 SceneDelegate 类文件,这个 SceneDelegate 主要是给 iPadOS 用来做多窗口支持的,而且是仅在 iOS 13 及以上设备才支持,如果想让 App 支持低系统版本设备,就需要进行适配操作,删除新增的 SceneDelegate 相关内容。
团体程序设计天梯赛 L2 题目合集 目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目。本来想 L2 的题目都写个相对详细的题解的,但是由于时间已经很紧张了,就只能像来记录 L1题目的形式来 L2 的题解了,让我们都好好加油吧。
团体程序设计天梯赛 L1 题目合集 发现自己还能再参加一次天梯赛,在高兴之余,决定把在赛前将所有的天梯赛真题过一遍,希望自己可以取得理想的成绩。但是由于时间问题,而 L1 的题目相对比较简单,没有必要每一题都写详细的题解,就以文本来记录 L1 的题解吧。
面向任务的 Git 学习法 对于 Git 学习而言,通常枯燥的理论学习并不能帮助我们快速掌握它的使用,需要我们结合实践,才能更好地学会利用 Git 进行多人协作开发。本文就以任务的形式,来介绍 Git 命令的使用,希望在进行学习前,你已经有了些许理论基础。
macOS 上的 Charles 使用配置 Charles 简介Charles 中文名为青花瓷,它通过HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息),以达到分析抓包的目的。...
用 Vim 编写 C++ 程序 最近的日子有些寂寞,不禁让我想起了多次让我入门到放弃的 Vim。对着冰冷的理论和命令,难免会让人感到枯燥。于是,我打算利用任务驱动的形式来进行学习,就从编写我最爱的C++程序开始吧~
图解排序算法之谈「选择排序」 选择排序(Select Sort)的核心思想是:将要排序的序列分成有序和无序两个部分,开始时有序部分为空,然后经过 n - 1 次遍历,每次遍历都在无序部分选取一个最值元素,然后放在有序部分中,到所有遍历完成时有序部分已经扩展到整个区间了,即排序完成。
图解排序算法之「冒泡排序」(详细解析) 冒泡排序(Bubble Sort)是最基础的排序算法之一,它的核心思想是:多次遍历要排序的序列,在遍历的过程中,当发现两个相邻的元素逆序,就交换这两个元素的位置,直到某次遍历不需要交换元素为止。
从零开始使用 Mac 电脑之入门篇 为了缓解将来连 Mac 电脑怎么开关机都不知道的尴尬,一个没有摸过 Mac 电脑的人开启了他的学习之旅。这本文是在看了 Bilibili | iOS 开发基础班课程 关于 Mac 电脑的使用部分之后做的笔记,如果不当之处还望各位经验人士指出来,我也会及时改正哒~
手撕设计模式之「工厂方法模式」(Java描述) 工厂方法模式是对简单工厂模式的改进,它通过对工厂类进行抽象形成一个抽象工厂接口,再让具体的工厂负责对应产品的创建,使得在增加产品的场景中也满足“开闭原则”。希望通过本文的学习,你可以掌握这种设计模式。
手撕设计模式之「简单工厂模式」(Java描述) 利用简单工厂模式可以实现对象创建和业务逻辑处理的分离,但存在工厂类职责过重,增添新产品违背开闭原则等问题。它不属于GoF 23种设计模式之一,但是它可以作为学习工厂方法模式前的一个很好的引导。
wdCP面板升级MySQL版本为5.6 为了减少出错的可能性,最好将下面的命令以复制的形式输入到Linux终端。因为文章有原创申明(~~不要脸~~ ),可以先将命令复制到记事本,再复制进终端。为了方便排错,我把一些运行结果也复制进来了。因为搞的过程中,有些命令存在路径问题,我也不知道能不能直接写成一个`.sh`文件,然后直接运行。看到很多博客说可以,我抱有怀疑的心态,不建议像我这样的小白尝试。
「软件测试基础」理论篇之软件测试概论 本文为课堂以及自己看课本的笔记,里面的内容基本都摘自周元哲所著的「软件测试基础」,只为方便复习和分享,不作任何商业用途!(为什么要那么麻烦?那要从一只蝙蝠说起……)
CentOS7安装wdCP面板,快速搭建web运行环境(图文详解) 安装wdPC面板可以减少我们在Linux服务器上搭建Web运行环境的麻烦(里面包含web应用运行所需要的环境),同时还可以**在wdPC提供的后台管理页面中对服务器、网站、在线文件等进行管理**,而且还是免费的,对新手来说十分友好。
剑指Offer #07 斐波那契数列(四种解法)| 图文详解 题目来源:牛客网-剑指Offer专题题目地址:斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39题目解析方法一:普通递归版求法,这种方法通常和汉诺塔一起被放在课本的递归教学部分,应该是面试官不希望看到的算法。F(n)={0,n=01,n=1,2F(n−1)+F(n−2),n>2F(n)...
剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解 题目来源:牛客网-剑指Offer专题题目地址:旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。题目解析方法一:最直观的方法莫过于...
剑指Offer #05 用两个栈实现队列(模拟) 题目来源:牛客网-剑指Offer专题题目地址:用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题目解析首先,我们需要知道一下基本知识:栈(stack)是一种操作受限制的线性表,限定仅在表尾进行插入和删除操作的线性表,具有有“先进后出”的特性。队列(queue)也是一种操作受限制的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,具有“先进先出”的特性。题目就是想让我们用两个“后进先出”的数据结构,来实现一个“
剑指Offer #04 重建二叉树(递归) 题目来源:牛客网-剑指Offer专题题目地址:重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目解析/** * Definition for binary tree * pu...
剑指Offer #03 从尾到头打印链表(递归) 题目来源:牛客网-剑指Offer专题题目地址:从尾到头打印链表题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。题目解析方法一:因为题目要求返回的顺序是从尾到头,所以我们可以采用递归的形式访问链表,在回归的过程才将节点的值存入ArrayList中,以达到逆序的目的。/*** public class ListNode {* int va...
剑指Offer #02 替换空格(字符串处理) 题目来源:牛客网-剑指Offer专题题目地址:替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目解析方法一:再创建一个StringBuffer ansansans 保存答案,接着遍历str,若访问的字符非空格,则直接插入到 ansansans 后面;若为空...
剑指Offer #01 二维数组中的查找(Java描述) 题目来源:牛客网-剑指Offer专题题目地址:二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目解析方法一:暴力法,遍历二维数组,时间复杂度为 O(n2)O(n^2)O(n2)public class Solut...
L2-006 树的遍历-团体程序设计天梯赛GPLT 题目来源:团体程序设计天梯赛-练习集题目地址:L2-006 树的遍历题目大意给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。预备知识:中序遍历(Inorder Traversal):先遍历左子树,再访问更节点,最后遍历右子树。后续遍历(Postorder Traversal):先遍历左子树,再遍历右子树,最后访问根节点。(注意:遍...
L2-005 集合相似度-PAT团体程序设计天梯赛GPLT 题目来源:团体程序设计天梯赛-练习集题目地址:L2-005 集合相似度题目大意给定 nnn 个集合,然后有 kkk 次询问,每次询问都要求出 Nc/Nt×100%N_c / N_t \times100\%Nc/Nt×100%NcN_cNc 表示两个集合中都有的数的个数(重复不计),相当于求交集去重。NtN_tNt 表示两个集合一共有多少个数(重复不计),相当于求并集去重。...
L2-004 这是二叉搜索树吗?-团体程序设计天梯赛GPLT 题目来源:团体程序设计天梯赛-练习集题目地址:L2-004 这是二叉搜索树吗?题目大意给定一个长度为 nnn 的序列,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。如果是,则在一行中输出 YES ,然后在下一行输出该树后序遍历的结果,否者直接输出 NO。题目分析1. 预备知识前序遍历:先访问根节点,再遍历左子树,最后遍历右子树。后序遍历:先遍历左子树,再遍历右子树,最...
C++ STL容器总结之vector(超详细版) vector的中文翻译为向量,是一种C++ STL中的序列容器。它的是存储方式和C++语言本身提供的数组一样都是顺序存储,因此vector的操作和数组十分相似。但是和数组不一样的是,数组的存储空间是静态的,一旦配置了就不能改变,而vector的存储空间是动态的,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素,因此也被称为可变长数组。
L2-003 月饼-团体程序设计天梯赛GPLT 题目来源:团体程序设计天梯赛-练习集题目地址:L2-003 月饼题目大意题目给定月饼种类的数量和市场最大需求量,以及各个种类月饼的库存量、总售价、,请你计算可以获得的最大收益!题目分析这是一道考察贪心策略的简单题目,首先求出各个种类月饼的单价(即亿元/万吨),然后按照单价将各个种类的月饼降序排序,优先把单价高的月饼卖出去,最后达到求得结果就是我们要的答案。易错点:题目中给的各...
L2-001 紧急救援-团体程序设计天梯赛GPLT 题目来源:团体程序设计天梯赛-练习集题目地址:L2-001 紧急救援题目描述题目大意题目给出一张图,其中包括道路连接的城市和它们的距离,以及每个城市救援队的数量,最后求从出发地城市到目的地城市的最短路径条数、经过城市能召集到的最多救援队数量和最后选择的路径,可以结合样例理解题意:题目分析其实这道题目就是常规的最短路径题目,和模板有所不同的是,在求最短路径还要兼顾救援队的数量和统计...
Jupyter Nodebook添加代码提示(Vscode配置Jupyter Notebook运行.ipynb文件) 由于Jupyter Notebook调试Python代码十分方便,受到了许多Coder的欢迎,但是它存在个十分不方便的地方——没有代码提示 。好在VSCode现在已经支持Jupyter NoteBook了,只要经过简单的配置就可以运行.ipynb文件,同时还带有代码提示,十分方便!