macOS 升级 Mojave 导致 CLion 不能编译 出错

1.需要在mac上安装 Xcode Command Line Tools 

可用通过命令安装

会弹出一个这样的安装窗口,安装即可,大概有好几百M大小,耐心等待

安装完后会在 /Library/Developer 下看到安装成功

2.然后重新加载CLion即可 大概几十秒钟

如果电脑来不及刷新,不妨操作完,重启一下电脑

彻底删除JetBrains系列软件

删除这些目录下的与软件相关目录

例如删除CLion2018.1

 

删除IDEA或者 PyCharm同理,删除对应目录下的文件就行了

 

高精度加法和乘法

高精度加法和乘法

加法(只支持自然数的大整数相加)

1.通过模拟加法算式,从右往左依次累加,如果两个不一样长,要在短的前面用0补上。
2.取余保留,除10进位,注意最后一位如果有进位要把进位加上去。

乘法(只支持自然数的大整数相乘)

1. 通过模拟乘法算式,从右往左数的话,s1[i] * s2[j] 贡献给了ans[i+j]。
2.所以为了方便从右往左数, 先把s1,s2翻转,且乘法后的结果最多有 len1+len2位。
3.因为s1[i] * s2[j] 和s1[j] * s2[i]都会贡献给ans[i+j],所以要写两层for循环。
4.贡献值 = 第一次贡献值 + 第二次贡献值,然后取余保留,除10进位。
5.最后得到结果,要找到非0的首位,并且要反过来,也要判断结果为0的时候,返回”0″。

双向队列 deque 和 list

双向队列 deque 和 list

效率l介于ist和vector之间,支持随机访问(比vector效率低,比list高),支持两端插入删除(效率比list低,比vctor高)内部分块存储,结构比较复杂,不做深究

1、需要高效的随即存取,不关心插入和删除的效率,用vector 2、大量的插入和删除,不关心随即存取,用list 3、既需要随即存取,又要两端数据的插入和删除,用deque。

双向队列
deque<T> q 初始化
q.size() 当前队列长度
q.front() 返回队头元素
q.back() 返回队尾元素
q.push_back() 队尾入队
q.pop_back() 队尾出队
q.push_front() 队头队
q.pop_front() 队头出队
q.begin() 返回正向队头迭代器
q.end() 返回正向队尾迭代器
q.rbegin() 返回正向队尾迭代器
q.rend() 返回反向队尾迭代器
[] 存在操作,但效率低

双向队列
deque<T> a 初始化
a.size() 当前list长度
a.front() 返回头部元素
a.back() 返回尾部元素
a.push_back() 尾部添加元素
a.pop_back() 尾部删除元素
a.push_front() 头部添加元素
a.pop_front() 头部删除元素
a.begin() 返回正向list迭代器
a.end() 返回正向list迭代器
a.rbegin() 返回正向list迭代器
a.rend() 返回反向list迭代器
a.resize() 重新分配大小
a.reverse() 翻转链表
a.insert(*it,value) 插入
a.erase(*it) 删除
a.unique() 去重
a.merge(list2) 合并
a.sort() 排序

Bellman-Ford负权值 最短路 模版

1.n个点,m条边,含有负边。
2.外层循环n-1次,内层循环m次,进行松弛
3.添加check变量判断本轮是否进行松弛了,如果未进行松弛则可以提前退出循环
4.处理有向边时,注意u[i]和v[i]的顺序不要颠倒

 

优先队列详解和使用

优先队列详解和使用

1.优先队列和普通队列相似,但是出队按照优先级高的先出对,进队和出队时间复杂度都为O(log2n)。

2.因为内部原理是用堆实现,插入时候把堆调整(花费o(log2n)),删除时直接删除堆顶(O(1)),然后把剩下元素调整(O(long2 n))。把一个原始无序集合,通过完全二叉树够造成堆花费O(nlog2n)。

3.(1).适用于动态添加和删除时,实时维护最值。(2).也可用于n个元素取前k个(比如10G的数据,取前100个最值,在内存不够情况下,只需要开辟100个数据的堆空间,把这10G数据依次读取进/出优先队列(堆),即可解决内存的问题,而且时间复杂度在nlong2k)。

 

c++为例
初始化 priority_queue<T> q;
入队 q.push();
出队 q.pop();
队头( 优先队列队头是top,普通的是front ) q.top()
元素个数 q.size();
判断队是否空 q.empty();

根据日期计算周几星期几

根据日期计算周几星期

1.根据基姆拉尔森计算公式枚举即可
2.W = (d+2m+3(m+1)/5+y+y/4-y/100+y/400) % 7
3.注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月例:如果是2018-1-1则换算成:2017-13-1来代入公式计算。

 

sublime mac 快捷键

sublime mac 快捷键

符号说明

符号 说明
command
control
option
shift
enter
delete

打开/关闭/前往

快捷键 功能
⌘⇧N 打开一个新的sublime窗口
⌘N 新建文件
⌘⇧W 关闭sublime,关闭所有文件
⌘W 关闭当前文件
⌘P 跳转、前往文件、前往项目、命令提示、前往method等等(Goto anything)
⌘⇧T 重新打开最近关闭的文件
⌘T 前往文件
⌘⌃P 前往项目
⌘R 前往method
⌘⇧P 命令提示
⌃G 前往行
⌘KB 开关侧栏
⌃` 打开控制台
⌃- 光标跳回上一个位置
⌃⇧- 光标恢复位置

编辑

快捷键 功能
⌘A 全选
⌘L 选择行(重复按下将下一行加入选择)
⌘D 选择词(重复按下时多重选择相同的词进行多重编辑)
⌃⇧M 选择括号的内容
⌘⇧↩ 在当前行前插入新行
⌘↩ 在当前行后插入新行
⌃⇧K 删除行
⌘KK 从光标处删除至行尾
⌘K⌫ 从光标处删除至行首
⌘⇧D 复制(多)行
⌘J 合并(多)行
⌘KU 改为大写
⌘KL 改为小写
⌘C 复制
⌘X 剪切
⌘V 粘贴
⌘/ 注释
⌘⌥/ 块注释
⌘Z 撤销
⌘Y 恢复撤销
⌘⇧V 粘贴并自动缩进
⌘⌥V 从历史中选择粘贴
⌃M 跳转至对应的括号
⌘U 软撤销(可撤销光标移动)
⌘⇧U 软重做(可重做光标移动)
⌘⇧S 保存所有文件
] 向右缩进
⌘[ 向左缩进
⌘⌥T 特殊符号集 ˇ
⌘⇧L 将选区转换成多个单行选区

查找/替换

快捷键 功能
⌘f 查找
⌘⌥f 查找并替换
⌘⌥g 查找下一个符合当前所选的内容
⌘⌃g 查找所有符合当前选择的内容进行多重编辑
⌘⇧F 在所有打开的文件中进行查找

拆分窗口/标签页

快捷键 功能
⌘⌥[1,2,3,4] 单列、双列、三列、四列
⌘⌥5 网格(4组)
⌃[1,2,3,4] 焦点移动到相应的组(分屏编号)
⌃⇧[1,2,3,4] 将当前文件移动到相应的组(分屏编号)
⌘[1,2,3,4] 选择相应的标签页

快捷操作

快捷键 功能
⌘⌃上下键 两行交换位置
⌘KB 显示/隐藏侧边

文章转载自 https://www.jianshu.com/p/6185dc5eb507