-
【基础】4、链表(二)
目录 虚拟头节点 动态数组的缩容 双向链表 复杂度分析虚拟头节点有时候为了让代码更加精简,统一所有节点的处理逻辑,可以在最前面增加一个虚拟的头结点(不存储数据)增加虚拟头结点后需要改动的方法 //初始化时创建虚拟头结点-(instancetype)init{ self = [super init]; if (self) { _first = [LCNode nodeWithElement:nil next:nil]; } return self...…
-
【基础】3、链表(一)
目录 链表 链表实现动态数组 算法训练链表一、简介动态数组有个明显的缺点 可能会造成内存空间的大量浪费 能否用到多少就申请多少内存?链表可以办到这一点 链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的二、链表的设计链表实现动态数组LCLinkArray.h文件#import <Foundation/Foundation.h>#import "LCArray.h"NS_ASSUME_NONNULL_BEGIN@interface LCLinkArray : ...…
-
【基础】2、动态数组
目录 什么是数据结构 线性表 自实现动态数组什么是数据结构数据结构是计算机存储、组织数据的方式在实际应用中,根据使用场景来选择最合适的数据结构一、线性结构线性表(数组、链表、栈、队列、哈希表)二、树形结构二叉树、AVL树、红黑树、B树、堆、Trie、哈夫曼树、并查集三、图形结构邻接矩阵、邻接表线性表线性表是具有 n 个相同类型元素的有限序列( n ≥ 0 )a1 是首节点(首元素), an 是尾结点(尾元素)a1 是 a2 的前驱, a2 是 a1 的后继常见的线性表有 数组 链...…
-
【基础】1、复杂度
目录 什么是算法 斐波那契数列 大O表示法 fib函数复杂度分析 算法的优化方向什么是算法算法是用于解决特定问题的一系列的执行步骤比如://计算a跟b的和-(int)plustWithA:(int)a b:(int)b{ return a+b;}//计算 1+2+3+...n的和-(int)sumWithN:(int)n{ int result = 0; for (int i=1; i<=n; i++) { result += i; }...…
-
Git常用操作
目录 tag相关操作 远程仓库(未初始化)关联本地仓库 远程仓库(已初始化)关联本地仓库tag相关操作 操作 命令 说明 创建标签 git tag <tag_name> <commit_hash> 创建一个轻量标签(无附加信息),指向指定的commit。 查看所有标签 git tag 列出所有本地标签(按字母顺序)。 ...…
-
场景
目录 合并冲突 回滚场景合并冲突有一个共有的开发分支dev 有一个自己的业务分支lxy_develop平时我们自己的业务在自己的业务分支进行开发,如果有需要可以随时将dev的分支合并到lxy_develop 这样做的好处是: 1、实时保证自己的代码具有最新的功能,比如同事添加的好用的工具类 2、可以随时解决可能得冲突,而不至于等到最后集中到一块解决,容易产生错误在最后将lxy_develop合并到dev之前,做一次dev合并到lxy_develop的操作,目的是解决最后可能得...…
-
SSH配置
参考:Generating a new SSH key and adding it to the ssh-agent目录 SSH配置 如果有多个github账号怎么配置 错误收集目前github已经不允许使用账号密码的方式来拉取和提交代码了。可以使用下面两种方式:一种方式是使用SSH的方式来拉取和获取一种方式是可以使用令牌来拉取和获取SSH配置第一步:在本地创建一对公私钥ssh-keygen -t rsa -b 4096 -C "your_email@example.com"创建完成...…
-
Git报错收集
目录 报错收集报错收集一、执行git push报错报错信息如下remote: You must verify your email address.remote: See https://github.com/settings/emails.fatal: unable to access 'https://github.com/JiangHuHiKe/JiangHuHiKe.github.io.git/': The requested URL returned error: 403现象:...…
-
Git处理冲突
目录 分叉分叉当我们在一个分支使用git push提交内容时,如果在远端有别人已经提交了,这时会报错。$ git pushTo github.com:JiangHuHiKe/JiangHuHiKe.github.io.git ! [rejected] master -> master (fetch first)error: failed to push some refs to 'github.com:JiangHuHiKe/JiangHuHiKe.github.io...…
-
Git官方文档
目录 一、起步 二、Git 基础 三、Git 分支 四、服务器上的 Git 五、分布式 Git 六、GitHub 七、Git 工具 八、待整理 一、起步1.6 起步 - 初次运行 Git 前的配置git 版本查看git --version配置全局配置文件git config --global user.name "John Doe"git config --global user.email johndoe@example.com配置当前仓库的配置文件 如果...…
-
13、分支开发工作流
参考:玩转Git三剑客目录 长期分支 主题分支长期分支因为 Git 使用简单的三方合并,所以就算在一段较长的时间内,反复把一个分支合并入另一个分支,也不是什么难事。在整个项目开发周期的不同阶段,你可以同时拥有多个开放的分支;你可以定期地把某些主题分支合并入其他分支中。许多使用 Git 的开发者都喜欢使用这种方式来工作,比如只在 master 分支上保留完全稳定的代码——有可能仅仅是已经发布或即将发布的代码。 他们还有一些名为 develop 或者 next 的平行分支,被用来...…
-
12、Git集成使用禁忌
参考:玩转Git三剑客目录 禁止使用git push -f 禁止向集成分支执行变更历史的操作禁止使用git push -f当我们在当前分支向远程分支push的时候,如果不是fast-forward,Git是禁止我们向远程分支push的 这是Git的一种保护机制bogon:gitLearning LC$ git status On branch feature/add_git_commondsYour branch is behind 'github/feature/add_gi...…
-
11、Git多人协作
参考:玩转Git三剑客目录 多人协作 多人协作2多人协作一、不同人修改不同文件1、场景描述在GitHub网站gitLearning仓库创建一个分支:feature/add_git_commonds在本地仓库gitLearning,创建一个feature/add_git_commonds分支并跟踪远端feature/add_git_commonds在本地克隆一个新仓库gitLearning_02,创建一个feature/add_git_commonds分支并跟踪远端feature/a...…
-
10、Git与GitHub简单同步
参考:玩转Git三剑客目录 创建github账号 配置SSH 创建github仓库 关联github仓库创建github账号这个就不多说了配置SSH参考这个链接:https://docs.github.com/cn/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh查看本地的公私钥localhost:.ssh LC$ cd ~/.sshlocalhost:.ssh ...…
-
9、分支操作
参考:玩转Git三剑客目录 分支的创建、删除、切换 merge(fast-forward) merge(diverged) rebase cherry-pick分支的创建、删除、切换一、分支的创建#创建一个temp分支,并切换到tempgit checkout out -b tempgit checkout -h-b <branch> create and checkout a new branch-B <branch> ...…
-
8、Git独自使用(三)
参考:玩转Git三剑客目录 贮藏stash 忽略.gitignore Git的备份贮藏stash1、指令#将暂存区和工作区清空,并将内容贮藏起来git stash2、演示#查看下当前Git的状态,工作区有未保存的内容localhost:gitLearning LC$ git status On branch tempChanges not staged for commit: (use "git add <file>..." to update what will ...…
-
7、Git独自使用(二)
参考:玩转Git三剑客目录 对比文件差异 恢复暂存区、工作区 重置HEAD指向 删除文件的方法对比文件差异一、暂存区和HEAD文件差异查看1、指令git diff --staged#或者git diff --cached2、演示#我们修改index.html文件,并将修改提交到暂存区vi index.html#提交到暂存区git add index.html#查看暂存区与HEAD的文件区别,使用下面的命令localhost:gitLearning LC$ git diff --...…
-
6、Git独自使用
参考:玩转Git三剑客目录 修改commit的message 整理commit修改commit的message一、修改最近commit的message1、指令git commit --amend2、演示#我们先来看下最近commit的messagelocalhost:gitLearning LC$ git log -n 1commit e37b35d92e17026a15ed06a65bff3eaf5ee7fda6 (HEAD -> master)Author: LC <...…
-
5、Git基础(四)
参考:玩转Git三剑客目录 分离头指针 进一步理解HEAD和branch分离头指针一、分离头指针演示1、指令git checkout commitHash2、指令演示#查看下git的提交记录localhost:firstProject LC$ git log commit 666fb34b3499cb2937178fc246432e5bfaef6f43 (HEAD -> dev, tag: js01, master)Author: LC <LC@163.com>D...…
-
4、Git基础(三)
参考:玩转Git三剑客目录 探秘.git目录 对象 数一数tree的个数 实践探秘.git目录一、.git目录我们在工程目录下可以看到有一个隐藏目录 .git 进入.git 目录localhost:firstProject LC$ cd .gitlocalhost:.git LC$ ls -altotal 48drwxr-xr-x 13 LC staff 416 1 11 17:45 .drwxr-xr-x 7 LC staff 224 12 22 ...…